reactjs - 为什么 React 中不自动生成数组的键?

标签 reactjs

如果在数组中搜索时应该引用键而不是索引,为什么键的格式如此宽松?我觉得如果它们是自动生成的,就像 MongoDB 如何自动为文档生成对象 id,无论 _id 设置为什么,它都会使引用键变得更加容易。这个功能的实现成本太高,还是 Facebook 没有想到?只是想知道,因为最近我收到错误消息,说我应该通过 key 引用,但我的代码会按预期工作。我不完全理解为什么如果 key 可以采用任何独特的格式,那么它就更适合引用。如果有人能告诉我为什么会这样,我将非常感激。谢谢。

最佳答案

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

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

关于reactjs - 为什么 React 中不自动生成数组的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52308221/

相关文章:

javascript - 使用 React TypeScript 进行本地化

javascript React 从方法传递值

javascript - 使用 react 中的历史推送重定向用户

javascript - 如何在 Flow 中使用相同泛型类型的值对泛型函数进行类型检查

javascript - Chart.js 在折线图和 yAxis 单位标题周围添加边框 ([s])

reactjs - React + Redux + Router - 我应该为所有页面/组件使用一种状态/存储吗?

reactjs - list 第 1 行第 1 列语法错误没有找到具有给定 URL 的资源的问题

reactjs - 由于 React SPA 中的 Hasbangs,无法在刷新时访问页面

javascript - 为什么 useState 会导致组件在每次更新时渲染两次?

reactjs - 使用 font-awesome 来 react 创建应用程序