ReactNative Flatlist - RenderItem无法正常工作

时间:2018-02-24 17:30:04

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

所以我正在尝试使用React Native的FlatList renderItem属性,但是发生了一些非常奇怪的事情。

data属性设置为一个数组,其中包含未定义的元素,但是在renderItem函数中,它给出了一个错误,指出函数的参数未定义,除非我调用参数item

这是我的代码:

export default class Profile extends React.Component {
    onLearnMore = (user) => {
        this.props.navigation.navigate('UserDetail', user)
    }

    render() {
        return (
            <List>
                <FlatList
                    data={data.users}
                    renderItem={( {item} ) => {
                        console.log(item)
                        return (<ListItem
                            roundAvatar
                            title={`${item.fName} ${item.lName}`}
                            onPress={() => this.onLearnMore(item)}
                        />)
                    }}
                />
            </List>
        )
    }
}

如果我将{item}{userData}交换,则userData稍后将在函数中未定义。有谁知道为什么会这样?

3 个答案:

答案 0 :(得分:1)

请仔细阅读此答案。我体验了它,浪费了很多时间弄清楚为什么它不重新渲染:

如果状态发生任何变化,我们需要设置extraData的{​​{1}}属性:

FlatList

请在此处查看官方文档:

https://facebook.github.io/react-native/docs/flatlist.html

答案 1 :(得分:0)

我在物品周围缺少花括号{}。 添加它们之后,现在可以正常工作了。

renderItem= {({item}) => this.Item(item.title)}

答案 2 :(得分:0)

   renderItem={({ item, index }) => {
                return (
              <Text>{item.fName + item.lName}</Text>
                );
              }}