如果我在setState
中呼叫componentWillMount
,则render
方法中保证存在状态吗?注意我没有在回调中调用setState。
Facebook声明:“在render()之前调用componentWillMount,因此在此方法中同步调用setState()不会触发额外的渲染。”
引用“不触发额外渲染”对我来说意味着this.state
将是componentWillMount
中设置的内容,但我不完全清楚是否是这种情况。有人可以更轻松吗? (由于setState
是异步操作,我不确定我是否引入了竞争条件,或者在setState
中componentWillMount
之后是否保证了渲染生命周期方法
例如:
class Blah extends Component {
componentWillMount() {
this.setState({ someState })
}
render() {
// this.state.someState <--- guaranteed to be the value I set in componentWillMount?
}
}
答案 0 :(得分:0)
是的,没有React文档中所述的额外呈现:
在安装发生之前立即调用componentWillMount()。它在render()之前调用,因此在此方法中同步调用setState()不会触发额外的渲染。
参考:https://reactjs.org/docs/react-component.html#componentwillmount