我试图通过将回调函数传递给setstate
来强制 react 同步执行setstate
我已经对SO进行了研究,发现我们可以做类似的事情
this.setstate({state:value}, () => {function()})
但是,由于 ES5 没有箭头函数,我应该如何在 setstate 中传递回调?
我已经尝试过this.setstate({state:value}, function())
但它没有做我想让它做的事情。
此外,有没有更理想的方法来强制 react 同步执行 setstate?
强制setState
同步,因为 React 有时会将多个更新批处理在一起,以防止一次发生太多更新。
如果你将回调作为第二个参数传递,那么 React 将在组件的状态更新后调用它。
this.setState({ key: value }, function() {
// this.state is updated
});
// this.state might not be updated
另一种选择是改为使用 componentDidUpdate
等待任何setState
更改,如果您始终希望在任何状态更改后进行更新,这是一个更好的解决方案。
一般来说,React 无法判断你是传递了箭头函数还是常规函数作为参数,所以行为不会因为你使用的是 ES6 还是 ES5 语法而改变。