|
1
41
您应该为每个孩子添加一个密钥 以及孩子体内的每个元素 . 这种方法可以处理最小的DOM更改。
在代码中,每个
检查 this example .
试着移除
在示例中,如果我们不提供
以下是代码:
答案发表在 @Chris 下面的内容比这个答案要详细得多。 请看一看 https://stackoverflow.com/a/43892905/2325522 关于对账关键点重要性的React文档: Keys |
|
|
2
5
迭代数组时要小心!! 一种常见的误解是,使用数组中元素的索引是抑制可能熟悉的错误的一种可接受的方法:
然而,在很多情况下,情况并非如此!这是 反模式 那可以进去吗 一些 情况导致 不想要的行为 .
理解
|
|
|
3
4
这可能对某人有帮助,也可能没有帮助,但它可能是一个快速的参考。这也与上面给出的所有答案类似。 我有很多使用以下结构生成列表的位置:
经过一些尝试和错误(以及一些挫折),在最外层的块中添加一个键属性解决了这个问题。另外,请注意
当然,在上面的例子中,我一直天真地使用迭代索引(index)来填充键值。理想情况下,您应该使用列表项特有的内容。 |
|
4
3
检查:key=undef!!! 您还收到了警告信息:
如果你的代码完全正确,但是如果
有些值未定义!!!请先检查一下。你可以节省时间。 |
|
|
5
2
只需添加 唯一密钥 到您的组件
|
|
|
6
2
警告:数组或迭代器中的每个子级都应该有一个唯一的“键”属性。 这是一个警告,因为我们将要迭代的数组项需要一个独特的相似性。 React将组件渲染作为数组进行迭代。 解决这个问题的更好方法是为要迭代的数组项提供索引。例如:
索引是内置的道具。 |
|
|
7
2
当渲染项没有稳定的ID时,最后可以使用项索引作为键:
|
|
|
8
1
应该为键的每个子项使用唯一的值
例如,键值可以是 数据库id 或 UUID (Universal Unique Identifier) . 这里的按键是手动操作的:
您还可以让React使用 React.Children.toArray
|
|
|
9
1
在ReactJS中,如果要呈现一个元素数组,那么每个元素都应该有一个唯一的键。通常情况下,这种情况会产生一个列表。 例子:
在上面的示例中,它使用
修正后:
当您没有唯一密钥时使用map的替代解决方案(react不建议这样做) eslint ):
|
|
10
1
react中定义唯一密钥的最佳解决方案: 在映射中,您初始化了name post,然后key define by key={post.id},或者在我的代码中,您可以看到我定义name项,然后我定义key by key={item.id}:
|
|
|
11
0
我遇到这个错误消息是因为
|
|
|
12
-1
我有一把独一无二的钥匙,只需要像这样把它当作道具传递:
这一页很有帮助: |
|
|
13
-1
这是一个警告,但是 解决这一问题将使反应渲染更快 ,
这是因为
作为解决方案,只需引入
|
|
|
xajetin · 导航不更改滚动上的颜色 3 年前 |
|
|
Bryan Santos · 固定表头与引导 4 年前 |
|
|
tym · 根据用户偏好显示字段 4 年前 |
|
|
Pavel · 当验证DIV可见时,引导网格会移动 8 年前 |
|
|
Sam · 在标题中嵌入Bootstrap 3导航栏 8 年前 |
|
|
Alexander David · 折叠卡打开,然后立即再次关闭 8 年前 |