【问题标题】:Iterating over array in i18next在 i18next 中迭代数组
【发布时间】:2018-10-18 17:17:38
【问题描述】:

有一种方法可以迭代和渲染字符串/对象数组中的每一项吗?

i18n
    .use(languageDetector)
    .use(reactI18nextModule)
    .init({
        fallbackLng: 'en',
        resources: {
            en: {
                home: {
                    data:[
                        {id:1,val:"Item1"},
                        {id:2,val:"Item2"},
                        {id:3,val:"Item3"},
                        {id:4,val:"Item4"}]
                },
            }
        }
});

在组件中:

<FlatList
        data={t('home:data')} //--cannot do this
        keyExtractor={(item, index) => index}
        renderItem={({item}) => <Item>{item.val}</Item>}
/>

【问题讨论】:

  • 你在使用react-native-i18n包吗?
  • 不,我的依赖是'i18nextreact-i18next。我的应用程序在 Expo 中,我不确定是否可以使用 react-native-i18n。我也会避免在我的组件中重新映射数组,该数组相当大 ~ 500 项。

标签: react-native i18next react-i18next


【解决方案1】:

我找到了办法

<FlatList
    data={t('home:data', { returnObjects: true })}
    keyExtractor={(item, index) => index}
    renderItem={ ({item}) => <Text> {item.val}</Text>}
/>

FlatList 将每个元素包装在一个 item 对象中 (https://facebook.github.io/react-native/docs/flatlist.html)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 2019-01-25
  • 2018-03-23
相关资源
最近更新 更多