我在构造函数中将key的状态设置为0并且CommponentDidMount
上的代码具有以下代码:
this.setState({ key: Math.random() });
console.log(this.state.key)
this.forceUpdate();
console.log(this.state.key)
但是我获得了相同的州值。怎么可能?
答案 0 :(得分:0)
(setState)方法的行为类似于异步,所以任何console.logs或逻辑之后并不意味着它会等到状态更新,任何逻辑都要确保它在状态更新后执行它在函数中并将其作为第二个参数传递给(setState),如下所示:
this.setState({ key: Math.random() }, () => {
console.log(this.state.key)
});
另请注意,您可以使用带有空对象的(setState)强制更新,如下所示:this.setState({});