React Native:无法修复FlatList键警告

Tho*_*mas 5 reactjs react-native react-native-flatlist

我正在尝试从api中提取json的FlatList,但是我一直收到这个错误:

Warning: Each child in an array or iterator should have a unique "key" prop.
Check the render method of `VirtualizedList`.
Run Code Online (Sandbox Code Playgroud)

相关代码:

<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}
    />
  }}
/>
Run Code Online (Sandbox Code Playgroud)

我确定有一个简单的解决办法,但经过几天尝试不同的事情,我还没有找到它.谢谢你的帮助!

And*_*rew 7

看起来你需要改变keyid你写item.idkeyExtractor,并确保你有ID,它是为每个组件不同:

<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}
    />
  }}
/>
Run Code Online (Sandbox Code Playgroud)

或者,如果您没有唯一的密钥使用 keyExtractor={(item, index) => index}