setState
をcomponentWillMount
に呼び出すと、render
メソッドに存在することが保証されていますか?注コールバックでsetStateを呼び出すのではありません。は、ComponentWillMountで呼び出されたsetState後のレンダリングで保証された状態です
Facebookの状態: "render()の前にcomponentWillMountが呼び出されているため、このメソッドで同期してsetState()を呼び出すと余分なレンダリングがトリガーされません。
「余分なレンダリングを起動しない」ということは、this.state
がcomponentWillMount
に設定されたものになることを意味しますが、そのような場合は完全にはわかりません。誰かがもっと光を浴びせますか? (setState
は、非同期操作ですので、私はレースの条件を導入していますかはわからないか、レンダリングのライフサイクルメソッドがcomponentWillMount
にsetState
後に保証されている場合)。たとえば
:
class Blah extends Component {
componentWillMount() {
this.setState({ someState })
}
render() {
// this.state.someState <--- guaranteed to be the value I set in componentWillMount?
}
}