javascript - 如何以编程方式清除/重置 React-Select?
问题描述
ReactSelect V2和V3似乎有几个道具,比如clearValue
,resetValue
和setValue
. 无论我在尝试什么,我都无法以编程方式清除选择。resetValue
似乎无法从外部访问。
selectRef.setValue([], 'clear')
// or
selectRef.clearValue()
这不会清除当前选择。
我在这里错过了什么还是它还没有完全实现?
解决方案
如果您使用的是react-select,您可以尝试传递null
给value
prop。
例如:
import React from "react";
import { render } from "react-dom";
import Select from "react-select";
class App extends React.Component {
constructor(props) {
super(props);
const options = [
{ value: "one", label: "One" },
{ value: "two", label: "Two" }
];
this.state = {
select: {
value: options[0], // "One" as initial value for react-select
options // all available options
}
};
}
setValue = value => {
this.setState(prevState => ({
select: {
...prevState.select,
value
}
}));
};
handleChange = value => {
this.setValue(value);
};
handleClick = () => {
this.setValue(null); // here we reset value
};
render() {
const { select } = this.state;
return (
<div>
<p>
<button type="button" onClick={this.handleClick}>
Reset value
</button>
</p>
<Select
name="form-field-name"
value={select.value}
onChange={this.handleChange}
options={select.options}
/>
</div>
);
}
}
render(<App />, document.getElementById("root"));
这是一个工作示例。
推荐阅读
- python-3.x - 如何使用 repo 包安装最新版本的 pip
- python - 用多个用户输入填充字典
- flutter - 应用程序终止时无法访问本地数据库
- xamarin - Xamarin Android Android.OS.FileUriExposedException:
- laravel - laravel 6.* 中的错误空参数 route() 辅助函数
- laravel - 带有谷歌图表的 Laravel 6.0 无法显示数据
- angular - Angular中组件之间的通信
- mongodb - Jmeter 无法将文档插入 MongoDB
- arrays - 未知测试用例的重复和丢失数字问题失败
- c++ - pybind11:卡在未解决的重载函数类型上