Reactjs 选择选项“复制值”

Reactjs 选择选项“复制值”,reactjs,Reactjs,我从编辑表单中的选择选项中获取重复值。例如,在select选项中,我有A和B,假设我在数据库中记录为B。因此,当我进入编辑表单时,我应该看到选择了B,到目前为止,它工作正常。但我看到的是A,B,B,而不是A和B 我不确定如何消除重复值。代码如下: <div className="col-sm-10"> <select id="sourcename" className="form-control&quo

我从编辑表单中的选择选项中获取重复值。例如,在select选项中,我有A和B,假设我在数据库中记录为B。因此,当我进入编辑表单时,我应该看到选择了B,到目前为止,它工作正常。但我看到的是A,B,B,而不是A和B

我不确定如何消除重复值。代码如下:

  <div className="col-sm-10">
           <select id="sourcename" className="form-control" name="source" onChange={handleChange}>
                 {sourceData.map(option => (
                      <option value={option._id}>{option.sourcename}</option>
                      ))}
                      <option selected value={data.source._id}>{data.source.sourcename}</option>
          </select>
       </div>

{sourceData.map(选项=>(
{option.sourcename}
))}
{data.source.sourcename}

非常感谢您的帮助。谢谢

您只需使用该套件即可:

const uniqueData=新集合(sourceData)
[…唯一数据].map(选项=>(
{option.sourcename}
))}

这为我解决了这个问题

<option value={option.value} selected={optionsState == option.value}>{option.label}</option>
{option.label}

您的后端是否应该接受并返回重复的值?这里恐怕有错误。您不能使用
map
迭代
Set
,需要使用
array将其转换为array。从(Set)
您是对的。我改变了答案,谢谢大家。问题是sourceData在价值上已经是唯一的了。我猜第二个选项是重复值的原因:{data.source.sourcename}因此,我认为映射之外的选项是不必要的。地图生成的选项应该足够了。您还可以使用
幻灯片
方法从sourceData中删除此值:
<option value={option.value} selected={optionsState == option.value}>{option.label}</option>