React Native: Can't fix FlatList keys warning

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-07 06:43:15

问题


I'm trying to render a FlatList from json fetched from an api, but I keep getting this error:

Warning: Each child in an array or iterator should have a unique "key" prop.
Check the render method of `VirtualizedList`.

Relevant code:

<FlatList
  data={this.props.tunes}
  keyExtractor={(item, index) => item.id}
  renderItem={({item}) => {
    <Item
      key={item.id}
      title={item.title}
      composer={item.composer}
      year={item.year}
    />
  }}
/>

I'm sure there is a simple fix for this, but after a few days of trying different things I haven't found it. Thanks for your help!


回答1:


Looks like you need to change key to id as you write item.id in keyExtractor and be sure you have id and it's different for each component:

<FlatList
  data={this.props.tunes}
  keyExtractor={(item, index) => item.id}
  renderItem={({item}) => {
    <Item
      id={item.id} //instead of key
      title={item.title}
      composer={item.composer}
      year={item.year}
    />
  }}
/>

Or if you don't have unique key use keyExtractor={(item, index) => index}



来源:https://stackoverflow.com/questions/45947921/react-native-cant-fix-flatlist-keys-warning

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!