reactjs - react JSX : Unique Key Prop in Conditional Array

标签 reactjs

在无子 React 组件中,由于在 JSX 条件中使用数组,我收到了“unique key prop”错误:

Each child in an array should have a 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>

我明白了why the key prop is needed渲染子组件时,但是当“数组中的子元素”是这样的任意子元素集时,如何满足 React/JSX 的要求?

最佳答案

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>;
}

在根目录上提供键告诉 React 当 item.sale 更改时它应该如何协调列表。

我倾向于发现这也更容易阅读。

关于reactjs - react JSX : Unique Key Prop in Conditional Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863263/

相关文章:

reactjs - 类型错误 : "NetworkError when attempting to fetch resource."

reactjs - "special props warning"不引用 `ref` 也不引用 `key`

javascript - 如何使用 ReactJS 监听 iframe keydown 事件

javascript - 使用十六进制值在 react 样式 backgroundColor 中添加不透明度?

reactjs - enzyme 实例()返回null

javascript - 使用 React-Native-Router-Flux 从导航栏按钮传递 Prop

javascript - 使用 React Hooks 更新状态数组

javascript - 自定义 useFetch Hook 中的无限循环

javascript - 无法在 React 中控制台记录 api 结果

reactjs - React 浅测试中的硬编码预期字符串与提取变量