这在我身上发生过几次。我一直设法解决这个问题,但我仍然很想了解为什么会发生这种情况,以及我错过了什么。
基本上,如果我的方法中有一个条件,render
它指定了我的类div
:
let divClass = this.state.renderCondition ? 'red' : 'blue';
默认情况下,我将renderCondition
状态设置为 false。
如果我再定义onClick
一个按钮的处理程序(如下图),然后按一下按钮,同时使IS调用,DOM是不更新。也就是说类没有变化。
onClickCompile: function() {
this.setState({renderCondition: true}, function() {
synchronousSlowFunction();
});
}
这似乎有事情做与该跑的慢同步代码,如果代码是快速和简单的DOM IS适当更新。
如果我将调用包装synchronousSlowFunction
在 500 毫秒的超时时间内,一切都会按预期进行。然而,我想了解我误解了什么,以至于我不需要这个黑客。