key
没有显示,因为您不应该在组件中访问它。这是设计使然。请参阅此 Github 问题,特别是此评论,解释其背后的原因。引用与您的问题最相关的部分加粗:
原因是键的概念是在创建组件之前由 React 内部控制的。裁判也是一样。
您可以将 ReactElements 数组视为一个 Map。
Map 是一系列键和值元组。React 片段是一系列 key 和 props 元组(以及 type 和 ref)。密钥旨在决定每个插槽中的值是什么,而不是实际值本身。
如果你正在阅读一个名为 key 的道具,你可能会重载 key 的含义,或者不小心将它用于不相关的东西。
这种变化使概念更加严格。这有助于避免将 props 转移到另一个不应将 key 和 ref 一起带入的组件的错误。它还通过确保 React 内部的类型一致和稳定来提高性能。
如果您确实需要访问它,我建议重命名或复制道具名称作为可能的解决方法。
如果由于某种原因您绝对需要道具的key
价值,那么请编辑您的问题以了解原因。有一些解决方法(请参阅 Github 问题内部),但要获得一个好的答案,我们需要了解您到底想要完成什么。
要回答评论,如果您想要的只是索引值,那么只需按照FlatList for文档index
中所述作为道具传递:renderItem
renderItem={({ item, index }) => (
<MyComponent
data={item}
indexKeyIdOrWhatever={index}
/>
)}