Обнаружил двух детей с одним и тем же ключом, `[объект объекта]` - PullRequest
0 голосов
/ 12 июня 2019

Я получаю следующую ошибку: Обнаружены два дочерних элемента с одним и тем же ключом, [object Object]

У меня есть следующий массив с именами городов:

[
{ 'city' : `AIRDRIE`, 'province' : 'AB' }, 
{ 'city' : `ALBERTA BEACH`, 'province' : 'AB' }, 
{ 'city' : `ATHABASCA`, 'province' : 'AB' }, 
{ 'city' : `BANFF`, 'province' : 'AB' }, 
{ 'city' : `BARRHEAD`, 'province' : 'AB' }, 
{ 'city' : `BEAUMONT`, 'province' : 'AB' }, 
{ 'city' : `BLACKFALDS`, 'province' : 'AB' },
... 
]

Теперь я хочу отфильтроватьмассив:

const optionsCity = cities.filter(( {province} ) => {
  return province === this.state.province
})

, который работает нормально, пока я не попытаюсь открыть раскрывающийся список .. Я получаю сообщение об ошибке: Обнаружены два ребенка с одним и тем же ключом, [object Object]

Мой раскрывающийся список является реагирующим раскрывающимся списком, вот код:

<Dropdown 
    options={optionsCity} 
    onChange={this.updateCity.bind(this)} 
    value={this.state.city} 
    placeholder="Select a City" /> 

Вот мое обновление Город

  updateCity(city) {
    this.setState({city: city.name})
  }

Кто-нибудь знает, как исправить?Извините, мой английский очень плохой

Спасибо !!

1 Ответ

0 голосов
/ 12 июня 2019

На основе https://github.com/fraserxu/react-dropdown,, если вы используете массив опций объекта, он должен быть в определенном формате с ключами - 'value' и 'label'

{ value: 'one', label: 'One' }

Фильтр возвращает массив объектов, а не только массив названий городов. Вам нужно будет создать новый массив объектов с указанными выше ключами или просто использовать плоский массив названий городов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...