我在我的项目中使用 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
请注意,此问题仅发生在异步选择中。
感谢您的建议!
我认为你很接近。解决此问题的一种快速方法(尽管可能不是最好的方法)是向该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道具可以在用户选择一个选项时保留输入框的值。但好像已经不能用了
| 归档时间: |
|
| 查看次数: |
3452 次 |
| 最近记录: |