Flatlist warning 列表中的每个子项都应仅在第一次渲染时具有唯一的 "key"

Flatlist warning Each child in a list should have a unique "key" only on first render

问题

当应用程序加载第一个时 time.The flatlist 发出警告并显示 “警告:列表中的每个子项都应该有一个唯一的“键”属性。%s%s 有关详细信息,请参阅 https://reactjs.org/link/warning-keys。%s”

但是这个警告只是在第一次加载的时候。再次保存文件时。 flatlist 所在的位置警告消失

我尝试以不同的方式使用密钥提取器来修复它

1

<FlatList
  ref={flatListRef}
  data={data}
  keyExtractor={(item)=> item._id.toString()}
  renderItem={renderItem} 
/>

2

const keyExtractor = useCallback((item)=> item.postId,[])

<FlatList
  ref={flatListRef}
  data={data}
  keyExtractor={(item)=> item._id.toString()}
  renderItem={renderItem} 
/>

但是当第一次加载应用程序时警告不断出现。

问题

使用 keyExtractor 的正确方法是什么以及如何防止警告发生。

解决方案

其中一个渲染组件在没有给定键的情况下触发了地图功能。

试试这样的索引

  keyExtractor={(item, index) => index.toString()}

检查您是否使用 (.map) 函数映射任何视图,如果您正在映射视图,则提供主容器 key={index}