我有一个显示单选按钮的React组件。对这些的更改应由Reflux处理。据我所知,应该调用this.trigger(object)
来保存对象的任何更改。不幸的是,这会导致无限循环。
我发布了JSFiddle here来证明错误。
谁能看到我做错了什么?如何制作onUpdateAutoComplete(checked)
?
<AutoCompleteFrom autocomplete_from={form_fields.autocomplete_from} />
复选框组件
var AutoCompleteFrom = React.createClass({
mixins: [Reflux.connect(store)],
render: function() {
var autocompleteFrom = this.props.autocomplete_from.map(function(value) {
return (
<label for={value}>
<input type="radio" name={'autocomplete_from'+this.props.id} value={value}
onChange={actions.updateAutoComplete(this.props.checked)}
checked={this.props.checked == value}
/>
{value}
</label>
);
}, this);
return (
<div className="autocomplete-from">
{autocompleteFrom}
</div>
);
}
});
onUpdateAutoComplete
onUpdateAutoComplete(checked){
console.log('checked:', checked);
rows[0].autocomplete_from = checked;
// this.trigger(rows); // <== Causes an infinite loop when included.
},
干杯, 马丁
答案 0 :(得分:0)
修复方法是调用onChange={actions.handleChange}
并触发actions.updateAutoComplete(event.target.value, event.target.name);
小提琴更新了工作代码。