状态(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>
Log in
</button>
</div>
我看到函数会触发,但enable_button始终保持为真。
答案 0 :(得分:0)
问题已经解决了。这与反应无关。
我在userActions中进行了ajax调用,同时触发了两个事件而不是顺序触发,因此我得到了这种奇怪的行为。