javascript - 从选定项中添加和删除项目时,如何在 react 选择中捕获添加和删除事件?

标签 javascript reactjs react-select

handleChange(value) {
    let difference = this.state.selected.filter(x => !value.includes(x));
    console.log("Removed: ", difference);
    this.setState({
        selected: value
    });
}

最佳答案

为了在 react-select 中得到有关addition 值的通知,我使用了 onKeyDown 属性。当用户输入任何手动值并点击 entertab 添加如下值时,将调用此方法 (handleKeyDown):

      <Select
        inputValue={inputValue}
        isClearable={false}
        isMulti
        onChange={this.handleChange}
        onInputChange={this.handleInputChange}
        onKeyDown={this.handleKeyDown}
        placeholder="Type something and press enter..."
        value={value}
      />

    handleKeyDown = event => {
    const { inputValue, value } = this.state;
    if (!inputValue) return;
    console.log("event.key:", event.key);
    switch (event.key) {
      case "Enter":
        const newValues = inputValue.split(",").map(x => createOption(x));
        this.setState({
          inputValue: "",
          value: [...value, ...newValues]
        });
        event.preventDefault();
        break;
      case "Tab":
        this.setState({
          inputValue: "",
          value: [...value, createOption(inputValue)]
        });
        event.preventDefault();
        break;
      default:
        console.log("Other events caught");
    }
  };

您可以使用 onChange 属性捕获 remove 事件。下面的代码表明:

handleChange = (value, actionMeta) => {
    console.group("Inside handleChange");
    console.log(value);
    console.log(`action: ${actionMeta.action}`); // will capture remove event
    this.setState({ value });
  };

您可以在下面的沙箱中进行试验。上面提到的示例存在于沙箱中:https://codesandbox.io/s/react-codesandboxer-example-7r2y6

关于javascript - 从选定项中添加和删除项目时,如何在 react 选择中捕获添加和删除事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625651/

相关文章:

reactjs - redux thunk 中的 getState() 是否会改变实际状态

reactjs - 异步选择 react 不加载选项

javascript - 如何在其自己的单独文件中创建 React 上下文?

Javascript 根据 pray_name 获取每个值

javascript - 如何使用 jQuery-Facebook-Photo-Selector 提示 facebook 登录

css - React Select 可搜索下拉列表蓝色轮廓

javascript - 自定义 SingleValue 和选项 react 选择 - 选项显示,但 SingleValue 不显示

javascript - 选择选项不起作用 Vue js

reactjs - 如何使用 redux-form 处理提交

reactjs - 如何为使用 'create-react-app'创建的React应用设置 header