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}
问题
当应用程序加载第一个时 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}