props
で渡される親からの変数に応じて、コンポーネントの初期状態を設定したいとしましょう。Reactコンポーネントのどこに小道具依存状態を設定するのですか?
class MyClass extends Component {
constructor(props) {
super(props);
this.state = {};
}
私はこのような状態を設定したい:
if (this.props.foo === 'bar') {
this.setState({foo: 'bar'});
} else {
this.setState({foo: 'notBar'});
}
私はComponentDidMount()
でそれを入れて、動作しているようです。しかし、私はそれをコンストラクタに移動し、構文this.state = {...}
を使うべきですか?またはそれはComponentWillMount()
に属していますか?もしそうなら、状態が時間内にレンダリングされるという保証はありますか?あなたの状態が適切な値に基づいて割り当てられているので
私は '' componentWillReceiveProps() ''を認識していませんでした。ありがとう!だから私が正しく理解すれば、 '' componentWillReceiveProps() ''を使って、 '' foo''の代わりに '' getFoo() ''をpropsとして渡すのと同じ結果が得られますか? ( '' getFoo() ''は、親状態から読み取られた '' foo''値を返す親メソッドです) –
類似していますが、一度に多くの小道具を扱うことができます –
常にゲッター関数を小道具として渡すというアプローチを使用していたので、より洗練された選択肢を知ることは良いことです。ありがとう! –