javascript - 在 Ant Design 和 React 中选择一个选项后清除 Select 组件

标签 javascript reactjs antd

我只使用 Ant Design 的 Select 组件。我需要选择一个选项并将其添加到列表中,但在选择该选项后,我想清除选择输入。

// Receiving these props
const {
  fields,
  onAdd,
  selected,
} = this.props;

在下面的代码中,当用户选择一个选项时,它将调用 onAdd 方法以将所选选项添加到其父项的列表中。

<Select
  showSearch
  placeholder="Select a field"
  onSelect={(value) => {
    const optionSelected = fields.filter(field => field.id === value)[0];
    onAdd(optionSelected);
  }
  optionFilterProp="children"
  filterOption={(input, option) => (
    option.props.children.toLowerCase()
      .indexOf(input.toLowerCase()) >= 0
  )}
>
  {
    fields.map(field => (
      <Option
        key={field.id}
        value={field.id}
        disabled={selected.some(item => item.id === field.id)}
      >
        {field.name}
      </Option>
    ))
  }
</Select>

谢谢!

最佳答案

我解决了我的“问题”,只是将 null 设置为 value 属性。

<Select
  value={null}
  showSearch
  placeholder="Select a field"
  onSelect={(value) => {
    const optionSelected = fields.filter(field => field.id === value)[0];
    onAdd(optionSelected);
  }
  optionFilterProp="children"
  filterOption={(input, option) => (
  option.props.children.toLowerCase()
    .indexOf(input.toLowerCase()) >= 0
  )}
>
  {
    fields.map(field => (
      <Option
        key={field.id}
        value={field.id}
        disabled={selected.some(item => item.id === field.id)}
      >
        {field.name}
      </Option>
    ))
  }
</Select>

我几乎将选择用作按钮,用于选择和直接添加列表中的项目。我不知道这是否是反模式。

如果有人有不同的方法,请告诉我。

谢谢!

关于javascript - 在 Ant Design 和 React 中选择一个选项后清除 Select 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53635245/

相关文章:

javascript - Node.js 中实例化对象的常用方法是什么?

javascript - 如何告诉自定义 onSuccess 函数停止 Ant Design 上传组件中的上传微调器?

reactjs - 当包含 Flow 注解的 React 应用程序启动时会发生什么?

css - 页脚并不总是粘在底部

javascript - 根据列过滤antd表

javascript - Bootstrap 4 选项卡中的传单 map 未更新

javascript - IE7、IE8、IE9 对 Laravel 应用程序的支持,Bootstrap 为 "placeholder"

javascript - 了解方法签名语法

javascript - ReactJS - ant design - 用布局修复页脚

reactjs - antd 如何设置今天为默认日期?