AutoComplete组件dataSource 数据如果名字重名怎么拿到id?

新手上路,请多包涵

dataSource 现在的配置是不是只能array< String >的类型?

我现在后台的数据类型是:

[ {key:'1',name:'张三'} , {key:'2',name:'李四'} , {key:'3',name:'张三'} ] 

按目前AutoComplete的dataSource配置内容展示的是:

[ '张三' , '李四' , '张三' ]

那onSelect的时候,我能拿到的只能是:'张三' , '李四' , '张三' 这几个字符串.

问题:
我怎么能拿到name对应的key值?

阅读 2.8k
2 个回答

数据去重,同名的选项在 AutoComplete 的场景下只会给用户带来困扰

看antd autoCompelete源码

dataSource是DataSourceItemType数组:dataSource?: DataSourceItemType[];
而DataSourceItemType的类型包括:string | DataSourceItemObject | React.ReactElement<OptionProps> | React.ReactElement<OptGroupProps>;
其中,DataSourceItemObject这个接口的定义是:
`{

value: string;
text: string;

}`
所以你的dataSource配置内容应该是value-text的对象数组,选择的时候就能得到对应值了,可以用onSelect打印出来看一下。

推荐问题