Функция карты массива в реакции для тернарного оператора

Это мой массив

var CountryList = [{ name: Canada, value: 1 },
    { name: USA, value: 2 }]

Это операция, которую я использую прямо сейчас

var filterStr = nextProps.Country.value == "1" ? 'Canada' : 'USA';

Теперь я хочу использовать массив CountryList в приведенном выше коде, чтобы проверить, выбрана ли Канада или США. Это сделано с помощью карта? Если это США, я хочу заселить штаты США в другом раскрывающемся списке. Если это Канада, то в штатах Канады. ТАК, в соответствии с выбором из этого массива, я хочу заполнить Штаты. Мне нужно проверить выбранную страну. т.е. я хочу получить название страны. Как это сделать?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
339
3

Ответы 3

если вам нужен массив всех стран с названием 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.

это 'nextProps.CountryList.value', потому что я использую массив CountryList

Jane Fred 15.11.2018 09:22

map - неправильная функция для использования здесь. Вы должны использовать функцию find или filter. let country = CountryList.find((c) => (c.value === 1)) country = country && country.name

Другие вопросы по теме