javascript - 在 React 中使用索引作为键。什么时候有影响,什么时候没有影响?

标签 javascript reactjs loops for-loop

我正在使用以下代码片段提供索引作为键。

[{},{},{}].map((item,index) => <li key={index}/>)

最佳答案

当然,在React中,你需要为数组的所有元素传入唯一的键值。否则,您将在控制台中看到此警告。

Warning: Each child in an array or iterator should have a unique “key” prop.

因此,作为一个懒惰的开发人员,您只需传入循环的索引值作为子元素的键值即可。

当索引用作键时,对列表重新排序,或者从列表中添加和删除项目可能会导致组件状态出现问题。如果键是索引,则对项目重新排序会更改它。因此,组件状态可能会混淆,并且可能将旧 key 用于不同的组件实例。

使用索引作为键是安全的,有哪些异常(exception)情况?

  • 如果您的列表是静态的且不会更改。
  • 该列表永远不会重新排序。
  • 列表不会被过滤(添加/删除项目) 列表)。
  • 列表中的项目没有 ID。

key 应该是唯一的,但仅限于其同级 key 。

关于javascript - 在 React 中使用索引作为键。什么时候有影响,什么时候没有影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66059076/

相关文章:

javascript - 阻止任何导航或按钮在页面上工作

javascript - oncanplay 与 oncanplaythrough

javascript - 将 id 属性添加到 html 输入

reactjs - 如何将ag-grid-react包装到组件中?

python - 变为 false 后如何返回到代码开头?

javascript - 电子邮件地址对于导航栏来说太大了

html 标签属性 "data-setbg"在 React 项目中不起作用

javascript - gitlab 上的 CI/CD 无法使用 babel-loader 进行编译

java - 在 Java 中,在循环中将新数组初始化为函数参数。表现

Java:如何循环遍历数组并检查它是否与变量值匹配?