我正在使用以下代码片段提供索引作为键。
[{},{},{}].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/