javascript - 用户输入后加载 Material UI AutoComplete 建议

标签 javascript reactjs input autocomplete material-ui

我有一个自动完成组件,它需要加载大量数据列表(最多 6000 个元素)并根据用户的输入显示相应的建议。
由于数据选项有很多元素,每当用户开始在速度较慢的计算机上输入时,它就会变慢并且需要一些时间来加载所有内容。我必须阻止它,所以我想到了在用户输入第三个字符后显示用户建议的想法。每当用户单击输入框时,它甚至会给我这个错误:

Warning: React instrumentation encountered an error: RangeError: Maximum call stack size exceeded console.


我需要在第三个字符输入后显示建议。我尝试使用 getOptionDisabled suggestion和limitTags,但他们没有工作。
这是代码:
const NameSelect = (props) => {
  return (
    <Dialog>
        <React.Fragment>
          <DialogTitle id="search-name-dialog-title">
            Search name
          </DialogTitle>
          <DialogContent>
                <Autocomplete
                  id="combo-box-client-select"
                  options={props.NameList}
                  value={props.preSelectedName}
                  
                  getOptionLabel={(option) =>
                    option.Name_name +
                    ", " +
                    option.country +
                    ", " +
                    option.city
                  }
                  onChange={(object, value) => {
                    props.preSelectedNameSet(value);
                  }}
                  renderInput={(params) => (
                    <TextField
                      {...params}
                      label="Search name"
                      variant="outlined"
                      fullWidth
                    />
                  )}
                />
              .
              .
              .
    </Dialog>
  );
};
有人可以帮助我采用这种方法,还是建议一种更好的方法?谢谢!

最佳答案

尝试这样的事情:

<Autocomplete
    inputValue={inputValue}
    onInputChange={(e) => setinputValue(event.target.value)}
    id="combo-box-demo"
    options={values}
    getOptionLabel={(option) => option}
    style={{ width: 300 }}
    renderInput={(params) => (
      <TextField {...params} label="Combo box" variant="outlined" />
    )}
    open={inputValue.length > 2}
  />
使用InputValue Prop 触发自动完成下拉。
示例:auto complete dropdown

关于javascript - 用户输入后加载 Material UI AutoComplete 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66249791/

相关文章:

javascript - 如何从 map 上删除先前的圆圈?

javascript - React 中动态创建的元素 - 如何进行控制?

html - 表格内的单选按钮

javascript - 重组 - mapProps 和 withProps 不更新 Prop

javascript - 请建议使用 jest 对这两个功能进行单元测试的正确方法

javascript - 遍历数组但并非所有项目都显示

javascript - 如果textarea是动态的,如何从textarea中删除所有html标签?

input - 带有自定义搜索框和按钮的 Google 自定义搜索?

用于启用/禁用文本输入和添加/删除默认值的 jQuery 复选框

javascript - 如何忽略 Nuxtjs 上的全局 css?