reactjs React-警告:列表中的每个子元素都应该有一个唯一的“键”属性,即使我已经设置了键

rqdpfwrv  于 2023-03-08  发布在  React
关注(0)|答案(1)|浏览(130)

当我试图Map一个数组并返回JSX时,我收到了警告"列表中的每个子元素都应该有一个唯一的"键"属性"。
下面是我写的代码:

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

有没有人能告诉我如何解决这个问题或者告诉我我做错了什么?谢谢!
我知道在React中呈现列表时需要设置键,对于大多数情况,我都做得很好,除了这个例子。

omtl5h9j

omtl5h9j1#

console.log(optionsList)并查看问题所在。
我知道你有key属性,但是如果

  1. option未定义或为空
  2. option.id未定义或为空
    1.某些项目具有相同的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},如果没有问题,应该可以使用

相关问题