为什么州不更新

时间:2016-08-09 14:00:01

标签: reactjs

状态(enable_button)未在此更新:

getInitialState: function () {
    return {
        user_id: '',
        password: '',
        error: null,
        enable_button: true
    };
},

loginStart: function() {
    this.setState({enable_button: false});
    console.log("loginStart", this.state);
},

loginEnd: function() {
    this.setState({enable_button: true});
    console.log("loginEnd", this.state);
},

componentWillMount: function () {
    UserStore.on("login_start", this.loginStart);
    UserStore.on("login_end", this.loginEnd);
},

componentWillUnmount: function () {
    UserStore.removeListener("login_start", this.loginStart);
    UserStore.removeListener("login_end", this.loginEnd);
},

在我的渲染功能中,我有这个:

<div className="col-sm-12 controls">
    <button type="submit" href="#"
            className="btn btn-primary pull-right"
            disabled={!this.state.enable_button}>
        <span className="glyphicon glyphicon-log-in"> </span>
        &nbsp;&nbsp;Log in
    </button>
</div>

我看到函数会触发,但enable_button始终保持为真。

1 个答案:

答案 0 :(得分:0)

问题已经解决了。这与反应无关。

我在userActions中进行了ajax调用,同时触发了两个事件而不是顺序触发,因此我得到了这种奇怪的行为。