为什么React的setState中的回调导致阻塞?

时间:2016-04-29 13:28:49

标签: reactjs

我的代码中有以下内容:

this.setState({newState}, function(){ this.focus });

但是,当我包含回调时,它会阻止其他所有内容。这是在setState中进行函数回调的正确方法吗?

2 个答案:

答案 0 :(得分:0)

显然,将状态作为对象传入,而不是明确定义状态变量是导致阻塞的原因。

错:

let newState = {
   var1: true,
   var2: false
};
this.setState({newState}, function(){ this.focus });

右:

this.setState({var1: true, var2: false}, function(){ this.focus });

答案 1 :(得分:0)

如果没有任何进一步的上下文,我建议this未定义,错误就会被误吞。试试这个:

this.setState(newState, () => this.focus());