javascript - 如何在 Material UI 中删除自动完成之外的选定芯片

标签 javascript reactjs autocomplete material-ui multi-select

所以我想将选定的值显示为 <Chip /><TextField />之外在 <Autocomplete /> .我能够将值显示为 state .然而,我仍然无法删除这些芯片,即不仅是显示,而且还更改了 selected Prop <Autocomplete /> .有人有想法吗?

  const [val, setVal] = useState([]);

  const valHtml = val.map((option, index) => (
    <Chip
      label={option.title}
      deleteIcon={<RemoveIcon />}
      onDelete={() => {}}
    />
  ));

  return (
    <div>
      <Autocomplete
        multiple
        filterSelectedOptions
        options={top100Films}
        onChange={(e, newValue) => setVal(newValue)}
        getOptionLabel={option => option.title}
        renderTags={() => {}}
        renderInput={params => (
          <TextField
            {...params}
            variant="standard"
            placeholder="Favorites"
            margin="normal"
            fullWidth
          />
        )}
      />
      <div className="selectedTags">{valHtml}</div>
    </div>
  );
}

完整代码here

最佳答案

你需要两件事:

  1. ChiponDelete 中的适当逻辑,例如:
      onDelete={() => {
        setVal(val.filter(entry => entry !== option));
      }}
  1. Autocomplete 上指定值(您已经在状态中管理):
      <Autocomplete
        value={val}
        // ... other properties
      />

这是您的沙箱的工作版本:https://codesandbox.io/s/autocomplete-with-chips-85rqq

关于javascript - 如何在 Material UI 中删除自动完成之外的选定芯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924590/

相关文章:

javascript - R: session 开始时自动加载库

javascript - grunt-contrib-connect - fatal error : getaddrinfo ENOTFOUND my. 网站 - 如何设置自定义 URL?

javascript - 如何使用 React JS、Redux 和 Express 进行身份验证?

javascript - 为什么将 window.location.hostname 传递给此条件语句会导致跨源错误?

android - SearchView 提示未显示输入的单个字符

c# - 如何使用 Lucene.NET 构建自动完成/建议?

JavaScript 警报不能与 div 标签一起正常工作

javascript - 在 CSS 和 native Javascript 中选择没有任何子元素的父元素

javascript - 我的 React 应用程序的根文件夹与 React-Router 冲突

Python OpenCV PyCharm 自动完成