Reactjs 选择选项“复制值”
我从编辑表单中的选择选项中获取重复值。例如,在select选项中,我有A和B,假设我在数据库中记录为B。因此,当我进入编辑表单时,我应该看到选择了B,到目前为止,它工作正常。但我看到的是A,B,B,而不是A和B 我不确定如何消除重复值。代码如下: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
<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>