这是我的数组
var CountryList = [{ name: Canada, value: 1 },
{ name: USA, value: 2 }]
这就是我现在使用的操作
var filterStr = nextProps.Country.value == "1" ? 'Canada' : 'USA';
现在我想使用上面代码中的数组CountryList
来检查是否选择了加拿大或美国。是否使用映射完成?如果是美国,我想在另一个Dropdown中填充美国各州。如果是加拿大,那就是加拿大各州。因此,根据这个数组中的选择,我想填充States。我需要检查所选的国家。我想知道国名。如何做到这一点?
var states = {USA: [{name: 'A', value:1},..],Canada: []}
var country = CountryList.find(country => country.value == nextProps.Country.value).name;
if (states[county]){
this.setState({states: states[country], enabledStates: true});
}else{
this.setState({states: [], enabledStates: false});
}
显示基于标志enabledState的状态。
如果你想要一个以美国为例的所有国家的数组,你可以使用这样的过滤器:
CountryList.filter = country => country.value === 1 ;
或者,如果想检查美国是否存在于该阵列中,可以使用"查找">
map
不是此处使用的正确函数。您应该使用find
或filter
函数。
let country = CountryList.find((c) => (c.value === 1))
country = country && country.name