反应检查单选按钮

时间:2016-04-08 10:05:46

标签: reactjs reactjs-flux

我的单选按钮输入带有onChange回调,触发长动作 - 在服务器上进行计算。我希望我的输入现在更新,一旦点击它就会立即显示检查,不仅在计算完成时 - 否则用户认为他没有点击正确并继续点击。

所以我不能用props设置“checked”属性,否则它必须等待计算结束。在myinput.checked = "checked"回调中调用inChange也不会更新它。

我的解决方法是编写10条丑陋和愚蠢的代码行,比如这些代码,以便状态首先更新,然后我们在操作结束时获取道具:

getInitialState: function () {
    // "anti-pattern", according to the docs
    return {value: this.props.value};
},

componentWillReceiveProps: function(nextProps) {   
    // because we use the state in the <input>, it needs to mirror the props
    // when they change for another reason. I call it dirty.
    this.setState({value: nextProps.value});
},

onChange: function (e) {
    this.setState({value: e.target.value});   // to update it right now
    Actions.longAction(e.target.value);   // long action
},

render: function() {
    ...
    return <input 
        ...
        type="radio"
        checked={ this.state.value === 1} 
    />;
}

有没有更好的方法可以立即检查用户点击的选项?

0 个答案:

没有答案