保留在 react-select 中选择的选项的输入值

Sỹ *_* Lê 6 react-select

我在我的项目中使用 react-select 2。每次用户选择一个选项时,输入值都会被清除,这会导致选项列表发生变化。
有没有办法保留输入值以便用户可以选择多个选项?这是我尝试过的:

<Select
    closeMenuOnSelect={false}
    blurInputOnSelect={false}
    isMulti
    loadOptions={this.resultProvider.bind(this)}
    inputValue={this.state.searchKey}
    onInputChange={this.handleInputChanged.bind(this)}
  />
Run Code Online (Sandbox Code Playgroud)


handleInputChanged(input, reason) {
    if (reason.action === "set-value") {
        return;
    }
    this.setState({
        ...this.state,
        searchKey: input
    });
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个演示来演示这个问题:https : //codesandbox.io/s/345rp0m041

请注意,此问题仅发生在异步选择中。

感谢您的建议!

Sah*_*ghe 5

我认为你很接近。解决此问题的一种快速方法(尽管可能不是最好的方法)是向该handleInputChanged方法添加另外两项检查:

handleInputChanged(input, reason) {
    if (reason.action === "set-value" ||
        reason.action === "input-blur" ||
        reason.action === "menu-close") {
          return;
    }
    this.setState({
      ...this.state,
      searchKey: input
    });
  }
Run Code Online (Sandbox Code Playgroud)

这是代码的工作演示:https ://codesandbox.io/s/8n9mx057k0

希望这可以帮助!

旁注:在react-select的V1中,我们有一个onSelectResetsInput道具可以在用户选择一个选项时保留输入框的值。但好像已经不能用了