为什么在React中没有自动生成数组键?

时间:2018-09-13 07:00:18

标签: reactjs

如果在搜索数组时应引用键而不是索引,为什么键的格式如此宽松?我觉得,如果自动生成键(例如_id设置为_id,无论MongoDB如何自动为文档生成对象ID),它将使引用键变得容易得多。此功能是否太昂贵而无法实现,还是Facebook没想到?我只是想知道,因为最近我一直在收到错误消息,说应该使用该键进行引用,但是我的代码仍可以按预期工作。我不完全理解为什么键可以采用任何独特的格式来更好地引用。如果有人可以向我学习,为什么会这样呢,我会非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

keys帮助React知道内容是否需要重新渲染。假设您有五个对象的数组,并且正在它们上进行映射。您删除了第四个元素,现在第五个元素移到了数组中第四个元素的位置。现在,对于React来说,如果有React自己生成的动态键,它不知道它是滑入第四个元素位置的第五个元素。因此,它必须删除该节点并创建一个新节点。但是,如果您给它提供了一个密钥,它将看到第四个元素的密钥是属于第五个元素的密钥,不需要删除节点。

您所说的情况类似于在数组上进行映射时使用index作为键。您可以阅读this文章以了解为什么不应该将索引用作键。