gpt4 book ai didi

javascript - React-chosen 引发错误

转载 作者:行者123 更新时间:2023-12-03 11:42:32 26 4
gpt4 key购买 nike

我正在使用 React-chosen(https://github.com/chenglou/react-chosen,jQuery Chosen 插件的 React 包装器,https://harvesthq.github.io/chosen/)。我遇到了多重选择元素的问题。

如果我做了这样的事情(在 React.createClass 调用中):

    loadDataFromServer: function() {
$.ajax({
url: '/api/users/',
dataType: 'json',
success: function(data) {
for (var i = 0; i < data.length; i++) {
var option = data[i];
var val = [option.id];
this.state.options.push(
<option key={i} value={val}>{option.name}</option>
);
}
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
getInitialState: function() {
return {data: [], options: []};
},
componentDidMount: function() {
this.loadDataFromServer();
},
render: function () {
return (
<form className="well base_well new_task_well" onSubmit={this.handleSubmit}>
<Chosen width="300px" data-placeholder="Select..." multiple>
{this.state.options}
</Chosen>
<button type="button" className="btn add_button" id="add_new_task_btn" type="submit">Add</button>
</form>
)
}

然后一切正常(我基本上对 API 进行 AJAX 调用,并根据结果构建一个可能包含多个值的下拉选择列表)。

但是,为了减少代码大小,我想将选择列表构建为单独的组件,如此处所述 https://stackoverflow.com/a/25818571/2486678

我像这样构建组件:

var multipleSelect = React.createClass({
propTypes: {
url: React.PropTypes.string.isRequired
},
getInitialState: function() {
return {
options: []
}
},
componentDidMount: function() {
$.ajax({
url: this.props.url,
success: this.successHandler
})
},
successHandler: function(data) {
for (var i = 0; i < data.length; i++) {
var option = data[i];
this.state.options.push(
<option key={i} value={option.value}>{option.name}</option>
);
}
},
render: function() {
return this.transferPropsTo(
<Chosen width="300px" data-placeholder="Select..." multiple>
{this.state.options}
</Chosen>
)
}
});

然后,在父组件的 render 方法中,我将 multipleSelect 组件“插入”到表单中:

<multipleSelect url="/api/places"
value={this.state.place_childSelectValue} onChange={this.place_changeHandler}
/>

虽然这对于只有一个可能值的 Chosen 元素效果很好(没有传递 multiple 属性),但如果我对具有多个可能值的列表尝试这种方法,我收到此错误:

“警告:如果 multiple 为 true,则提供给

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com