9

我正在尝试从从 api 获取的 json 中呈现 FlatList,但我不断收到此错误:

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

相关代码:

<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}
    />
  }}
/>

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

4

1 回答 1

11

看起来您需要在写入时更改key为,并确保您有 id 并且每个组件都不同:iditem.idkeyExtractor

<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}
    />
  }}
/>

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

于 2017-08-29T20:52:09.797 回答