【发布时间】:2020-02-06 17:41:04
【问题描述】:
我已经进行了大量搜索,但无法使其正常工作。看起来很简单。顺便说一句,我正在使用 Bootstrap-multiselect。
class MyProject extends React.Component {
constructor(props) {
super(props);
this.state = { searchForm: { status: ["VALUE2","VALUE4"], otherprops: "blah" }, otherStates: "blah"};
}
//blah blah
render() {
return (
<select id="example-multiple-selected" multiple="multiple" defaultValue={this.state.searchForm.status} onChange={(event) => this.state.searchForm.status = event.target.value}>
<option value="VALUE1">VALUE1</option>
<option value="VALUE2">VALUE2</option>
<option value="VALUE3">VALUE3</option>
<option value="VALUE4">VALUE4</option>
<option value="VALUE5">VALUE5</option>
<option value="VALUE6">VALUE6</option>
<option value="VALUE7">VALUE7</option>
<option value="VALUE8">VALUE8</option>
</select>
)
}}
问题
未选择默认值(VALUE2 和 VALUE4);
当我更改所选选项时似乎没有任何反应
编辑
似乎每个人都在谈论我没有正确设置状态的事实,我绝对同意。这是我犯的一个愚蠢的错误。 但是,我面临的根本问题仍然存在:
正如我所提到的,默认值不会被填充;
-
onStatusChanged 函数根本没有被触发。我将调试点放在此函数中,但是当我更改所选选项时根本没有达到调试点。
onStatusChanged = (e) => { 让搜索 = this.state.searchForm; search.status = e.target.selectedOptions; 这个.setState({ 搜索形式:搜索 }) }
<select id="example-multiple-selected" multiple="multiple" defaultValue={this.state.searchForm.status} onChange={this.onStatusChanged}>
编辑 2
最新代码:
class MyProject extends React.Component {
constructor(props) {
super(props);
this.state = { searchForm: { status: ["VALUE2","VALUE4"], otherprops: "blah" }, otherStates: "blah"};
this.onStatusChanged = this.onStatusChanged.bind(this);
}
//blah blah
onStatusChanged = (e) => {
let search = this.state.searchForm;
search.status = e.target.selectedOptions;
this.setState({
searchForm: search
})
}
render() {
return (
<select id="example-multiple-selected" multiple="multiple" value={this.state.searchForm.status} onChange={this.onStatusChanged}>
<option value="VALUE1">VALUE1</option>
<option value="VALUE2">VALUE2</option>
<option value="VALUE3">VALUE3</option>
<option value="VALUE4">VALUE4</option>
<option value="VALUE5">VALUE5</option>
<option value="VALUE6">VALUE6</option>
<option value="VALUE7">VALUE7</option>
<option value="VALUE8">VALUE8</option>
</select>
)
}}
重申我面临的问题:
正如我所提到的,默认值不会被填充;
onStatusChanged 函数根本没有被触发。我将调试点放在此函数中,但是当我更改所选选项时根本没有达到调试点。似乎未检测到 onChange。
顺便说一句,如果有帮助,我正在使用 Bootstrap-multiselect 插件。
【问题讨论】:
标签: javascript reactjs bootstrap-multiselect