Javascript 遇到两个具有相同密钥错误的子项

Javascript 遇到两个具有相同密钥错误的子项,javascript,reactjs,Javascript,Reactjs,我试图将一组对象城市名称映射到ANTD的select组件中 <Form.Item {...formItemLayout} label="City" hasFeedback > {getFieldDecorator('city', { rules: [{ required: true, message: 'Please select your city!',}], initialValue: this.state.city})( <Selec

我试图将一组对象城市名称映射到ANTD的select组件中

<Form.Item {...formItemLayout} label="City" hasFeedback >
   {getFieldDecorator('city', {
      rules: [{ required: true, message: 'Please select your city!',}],
      initialValue: this.state.city})(
    <Select
     showSearch
     placeholder="Please select a city"
     optionFilterProp="children"
     filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
    >
  {cities.map(r =>
   <Option key={`${r.lat}`} value={`${r.name}`}>{`${r.name}`}</Option>
   )}
    </Select>
 )}
</Form.Item>
这就是数据城市看起来的样子,我不知道如何使用选项中的数据。请提供帮助。

您正在使用latitude作为键,latitude可以相同,因此请尝试使用latitude和name的组合,这将使其唯一

 <Form.Item {...formItemLayout} label="City" hasFeedback >
   {getFieldDecorator('city', {
      rules: [{ required: true, message: 'Please select your city!',}],
      initialValue: this.state.city})(
    <Select
     showSearch
     placeholder="Please select a city"
     optionFilterProp="children"
     filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
    >
  {cities.map((r,index) =>
   <Option key={`${r.lat}${r.lng}${r.name}${index}`} value={`${r.name}`}>{`${r.name}`}</Option>
   )}
    </Select>
 )}
</Form.Item>
您正在使用纬度作为键,纬度可以相同,因此尝试使用纬度和名称的组合,这将使其唯一

 <Form.Item {...formItemLayout} label="City" hasFeedback >
   {getFieldDecorator('city', {
      rules: [{ required: true, message: 'Please select your city!',}],
      initialValue: this.state.city})(
    <Select
     showSearch
     placeholder="Please select a city"
     optionFilterProp="children"
     filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
    >
  {cities.map((r,index) =>
   <Option key={`${r.lat}${r.lng}${r.name}${index}`} value={`${r.name}`}>{`${r.name}`}</Option>
   )}
    </Select>
 )}
</Form.Item>

我尝试了很多组合,包括你的组合,但问题依然存在。你的数据中是否存在lat、long和name相同的可能性?@Hafizhan如果我编辑了答案,请也包括索引,试试这个我试过了,也不起作用。仍然输出相同的错误。我不明白为什么。我试过这么多组合,但都没能成功。是否有可能是长数组导致了这种情况?我尝试了许多组合,包括您的组合,但问题仍然存在。您的数据中是否存在lat、long和name相同的可能性?@Hafizhan如果我编辑了答案,请也包括索引,试试这个我尝试过,但也不起作用。仍然输出相同的错误。我不明白为什么。我试过这么多组合,但都没能成功。长数组是否有可能导致这种情况?