You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MUI Autocomplete free solo选择框实现已保存条目删除功能

实现方案

可以直接使用Autocomplete组件内置的renderOption属性自定义下拉选项的渲染内容,在每个选项右侧插入删除按钮,点击后触发你自定义的删除逻辑即可,无需额外引入第三方组件。


步骤1:导入所需依赖(未导入时需要补充)

import IconButton from '@material-ui/core/IconButton';
import CloseIcon from '@material-ui/icons/Close';
import Box from '@material-ui/core/Box';

步骤2:修改Autocomplete组件代码

新增renderOption属性实现带删除按钮的自定义选项,修改后完整代码如下:

<Autocomplete
  freeSolo
  className={classes.field}
  value={reference}
  onChange={(event, newValue) => {
    setValue(newValue)
    setReference(newValue)
  }}
  onInputChange={(event, newInputValue) => {
    setValue(newInputValue)
  }}
  options={searchHistoryReference} // 存储在localStorage的历史数组
  // 新增自定义渲染选项逻辑
  renderOption={(option) => (
    <Box width="100%" display="flex" alignItems="center" justifyContent="space-between">
      <span>{option}</span>
      <IconButton
        size="small"
        edge="end"
        onClick={(e) => {
          // 阻止事件冒泡,避免点击删除时触发选项选中逻辑
          e.stopPropagation();
          // 调用你自己实现的删除逻辑,入参是当前要删除的条目值
          handleDeleteHistoryItem(option);
        }}
      >
        <CloseIcon fontSize="small" />
      </IconButton>
    </Box>
  )}
  renderInput={(params) => (
    <TextField
      {...params}
      className={classes.field}
      onChange={(e) => setReference(e.target.value)}
      label='Number'
      variant='outlined'
      fullWidth
    />
  )}
/>

可选:实现Delete按键删除效果

如果需要实现悬浮选中条目后按Delete键删除的交互,可以给Autocomplete添加onKeyDown属性:

<Autocomplete
  // 其他原有属性保持不变
  onKeyDown={(e) => {
    if (e.key === 'Delete') {
      // 获取当前高亮的选项索引
      const highlightedIndex = e.currentTarget.getAttribute('data-highlighted-index');
      if (highlightedIndex !== null) {
        e.preventDefault();
        handleDeleteHistoryItem(searchHistoryReference[highlightedIndex]);
      }
    }
  }}
/>

你只需要自行实现handleDeleteHistoryItem函数,逻辑为把传入的条目从searchHistoryReference数组中移除,再更新回localStorage即可,组件会自动重新渲染下拉列表。

内容的提问来源于stack exchange,提问作者Ben in CA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:57:01