首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资料-ui自动完成重复键警告

资料-ui自动完成重复键警告
EN

Stack Overflow用户
提问于 2016-04-14 20:33:13
回答 2查看 3K关注 0票数 2

我正在通过一个项目使用material,当我试图加载一个更大的联系人列表时,我遇到了一些AutoComplete组件的小问题,有些联系人可能有相同的名称(因为测试数据),但是ids不同。

  1. 将对象作为dataSource项传递时发出警告。我得到一个重复的键警告:“警告:flattenChildren(.):遇到两个具有相同键的子级”
代码语言:javascript
复制
    {
      contact,
      key: index,
      text: FullName,
      value: <MenuItem key={index} primaryText={item} />
    }
  1. 在输入时,呈现速度很慢,因为有时它与许多联系人匹配。理想情况下,我想显示最多5-10个联系人在自动完成,但这是不可能的。(这一特性似乎已经为公关所接受,还是?)

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2022-02-18 13:26:31

例如,有时在mui自动完成中有具有相同显示属性的记录。在用户列表中,两个用户可能具有相同的名称。mui基于该属性生成一个密钥,这样您就可以得到重复的密钥。

解决方案是自定义密钥。为此,您需要自定义自动完成列表的呈现。

使用renderOption属性

代码语言:javascript
复制
       renderOption={(props, option, index) => {
              const key = `listItem-${index}-${option.id}`;
              return (
                <li {...props} key={key}>
                 
                  {option[optionProperty]}
                </li>
              );
            }}
票数 5
EN

Stack Overflow用户

发布于 2016-04-15 06:10:49

为了消除重复的键警告,text属性必须是唯一的,因为这是用来创建React的。

最好的方法是将“text”字段设置为index或某些ID,假设FullName存储在数组中。然后,可以使用索引查找相应的名称。如果FullNames位于对象/字典中,则可以使用ID检索FullName

当用户单击菜单项而AutoComplete组件的值不是要向用户显示的值时,可以使用onNewRequest事件动态设置该属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36633428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档