在try 映射数组并返回JSX时,我收到警告"列表中的每个子元素都应该有一个唯一的"键"props ".

以下是我编写的代码:

<select>
          {props.optionsList.length > 0 &&
            props.optionsList.map((option) => (
              <option
                value={option.value}
                disabled={option.disable ? true : false}
                key={option.id}
                selected={option.selected}
              >
                {option.textContent}
              </option>
            ))}
</select>

谁能告诉我如何解决这个问题,或者告诉我我做错了什么?谢谢!

我知道在Reaction中呈现列表时需要设置关键点.在过go 的大多数 case 中,我都做得很好,除了这个 case .

推荐答案

console.log(optionsList),看看问题出在哪里.
我看到你有key号房产,但这可能发生在

  1. option未定义或为空
  2. option.id未定义或为空
  3. 有些物品有相同的id

但是,您可以使用map函数的第二个参数来始终具有唯一的key:

{
  props.optionsList.length > 0 &&
    props.optionsList.map((option,index) => (
      <option
        value={option.value}
        disabled={option.disable ? true : false}
        key={index}
        selected={option.selected}
      >
        {option.textContent}
      </option>
    ));
}

但您应该首先找出导致此警告的原因,因为建议使用key ={option.id},如果没有问题,应该可以使用

Reactjs相关问答推荐

我想将状态设置为true,直到每一张卡片都生成并在多姆中呈现

无法在列表中看到文本

如何使用Reducer更新全局变量

如何在react组件中使用formik进行验证

Redux Provider Stuck甚至彻底遵循了文档

如何在MUI X数据网格列中显示IMG?

XChaCha20-Poly1305的解密函数

梅X折线图无响应

如何在中间件中获取 nextAuth 会话

Mui Datepicker 设置了错误的日期

Syncfusion:带有 TabItemsDirective 的选项卡组件不显示任何内容

如何让 useEffect 在 React.JS 中只运行一次?

Select 项目后 Select HeadlessUI 组合框中的所有文本?

如何在对话素材ui中设置边框半径?

React - 仅在变量为真时显示项目

刷新页面时状态改变问题

父状态改变后子组件丢失状态

如何将 id 从页面传递到另一个页面?

调用函数以获取数据并在数据到达时导航到链接

Context Api React 的问题