在本机中使用Flatlists renderItem,如果我使用Item的值作为数组的索引,则它是未定义的

时间:2020-04-16 20:45:23

标签: javascript react-native lodash react-native-flatlist

当访问传递给# transform('any') or transform('first') also work df['holiday'] = df.groupby(['YEAR','MONTH','DAY']).holiday.transform('max') 的{​​{1}}时,我可以使用类似item的值,并且它显示1、2,但不能将其用作这样的数组的索引_renderItem,其中返回一个空字符串。

<Text>{item.item}</Text>

<Text>{get(GLOBAL, ['products', 'item.item', 'title'], '')}</Text>会输出import get from 'lodash.get'; ~~~ _renderItem = (item) => { return ( <View style={{ flex: 1 }}> <Text>{item.item}</Text> <Text>{get(GLOBAL, ['products', 'item.item', 'title'], '')}</Text> </View > ) }; render() { return ( <View style={styles.list}> <FlatList data={[1,2]} renderItem={this._renderItem} /> </View> ) } ,但会按预期输出<Text>{get(GLOBAL, ['products', 'item.item', 'title'], '')}</Text>

这些如何产生不同的响应,如何将''传递给<Text>{get(GLOBAL, ['products', '1', 'title'], '')}</Text>的值用作数组的索引?

这样做的原因是,传递到FlatList的数据与我要从中获取某些信息的产品的索引相对应。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

您要使用item值,而不是对象和属性,而是传递一个字符串作为参数来隐藏lodash.get对象。尝试这样做:

_renderItem = (item) => {
    return (
        <View style={{ flex: 1 }}>
            <Text>{item.item}</Text>
            <Text>{get(GLOBAL, ['products', item.item, 'title'], '')}</Text>
        </View >
    )
};

当项目为GLOBAL['products'][1]['title']而不是您现在拥有的1时,实际上会得到GLOBAL['products']['item.item']['title']

答案 1 :(得分:0)

请不要忘记:_renderItem = ({item})不是_renderItem = (item)