Это мой массив
var CountryList = [{ name: Canada, value: 1 },
{ name: USA, value: 2 }]
Это операция, которую я использую прямо сейчас
var filterStr = nextProps.Country.value == "1" ? 'Canada' : 'USA';
Теперь я хочу использовать массив CountryList в приведенном выше коде, чтобы проверить, выбрана ли Канада или США. Это сделано с помощью карта?
Если это США, я хочу заселить штаты США в другом раскрывающемся списке. Если это Канада, то в штатах Канады. ТАК, в соответствии с выбором из этого массива, я хочу заполнить Штаты. Мне нужно проверить выбранную страну. т.е. я хочу получить название страны.
Как это сделать?





если вам нужен массив всех стран с названием USA, например, вы можете использовать такой фильтр:
CountryList.filter = country => country.value === 1 ;
или если вы хотите проверить, существуют ли в этом массиве, например, США, вы можете использовать "найти"
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.
map - неправильная функция для использования здесь.
Вы должны использовать функцию find или filter.
let country = CountryList.find((c) => (c.value === 1))
country = country && country.name
это 'nextProps.CountryList.value', потому что я использую массив CountryList