在一个没有子项的React组件中,由于我在JSX条件中使用了一个数组,我得到了"unique key prop"错误:
数组中的每个子节点都应该具有唯一的"键"支柱.
触发错误的代码如下所示:
<dl>
{ item.sale ?
[<dt>Sale</dt>,<dd className="formatted">{item.sale}</dd>,<dt>SRP</dt>,<dd>{item.srp}</dd>] :
[<dt>Price</dt>,<dd className="formatted">{item.srp}</dd>]
}
</dl>
Run Code Online (Sandbox Code Playgroud)
React无法知道您的数组是静态的,因此您会收到警告.这里最实际的做法是写下这样的东西:
var dl;
if (item.sale) {
dl = <dl key="sold">
<dt>Sale</dt>
<dd className="formatted">{item.sale}</dd>
<dt>SRP</dt>
<dd>{item.srp}</dd>
</dl>;
} else {
dl = <dl key="unsold">
<dt>Price</dt>
<dd className="formatted">{item.srp}</dd>
</dl>;
}
Run Code Online (Sandbox Code Playgroud)
在根上提供密钥告诉React在item.sale更改时如何协调列表.
我倾向于发现这也更容易阅读.
| 归档时间: |
|
| 查看次数: |
6778 次 |
| 最近记录: |