【问题标题】:Encountered two children with the same key, `[object Object]`遇到两个孩子用相同的键,`[object Object]`
【发布时间】:2019-10-27 07:13:53
【问题描述】:

我收到以下错误:遇到两个孩子使用相同的密钥,[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]

我的下拉菜单是 react-dropdown,代码如下:

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

这是我的更新城市

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

有人知道怎么解决吗? 对不起,我的英语很差

谢谢!!

【问题讨论】:

  • 您能否向我们展示您为下拉列表映射这些选项的代码?
  • 我修好了,看起来数组必须有变量“值”和“标签”。我的错 !!还是谢谢你!

标签: javascript reactjs filter key


【解决方案1】:

基于https://github.com/fraserxu/react-dropdown,如果您使用的是选项对象数组,则需要它采用特定格式并带有键 - 'value' 和 'label'

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

过滤器返回一个对象数组,而不仅仅是一个城市名称数组。 您将需要使用上述键创建一个新的对象数组,或者只使用城市名称的平面数组

【讨论】:

    猜你喜欢
    • 2021-03-08
    • 1970-01-01
    • 2017-12-15
    • 2017-05-17
    • 2021-10-29
    • 2021-11-09
    • 2018-01-01
    • 2021-06-24
    • 2018-10-06
    相关资源
    最近更新 更多