我有4个选择下拉菜单。
所选值不应出现在其余的下拉列表中
我state看起来像这样
this.state = {
selectedDropdownArray: {},
dropdownArray: ['select','1','2','3','4','5']
}
以下是我的选择下拉组件
<SelectDropdown
options={this.state.dropdownArray}
value={this.getValue()}
onChange={this.handleChange.bind(this)}
在handleChange功能上,我只是将值首先推送到其余工作所需的对象,然后修改dropdownArray。下拉列表的数组列表应根据选择进行过滤。
下面是我的handleChange函数,下拉列表中的值被过滤。
handleChange(name, value){
switch(name){
case '1' :
this.state.selectedDropdownArray["0"] = value === "select" ? null : value
break;
case '2' :
this.state.selectedDropdownArray["1"] = value === "select" ? null : value
break;
case '3'
...
...
}
let filter = Object.values(this.state.selectedDropdownArray);
let difference = this.state.dropdownArray.filter(x => !filter.includes(x));
}
如果与值第一下拉1被选择,则difference具有现在的过滤阵列[2,3,4,5],我可以setState给dropdownArray。
但是第一个下拉列表不必1在此选择中显示,因为该数组已被过滤。
什么是解决此问题的有效方法,以使每个4选择下拉列表具有唯一选择。
UYOU
相关分类