updateFullWindow
などのコード内の別の場所に自分自身を更新できるfullWindow
というChild
コンポーネントの状態プロパティがあります。componentWillReceiveProps内のデフォルトの小道具の上書き状態の変化に対応します
子コンポーネント:
static get defaultProps(){
return {
fullWindow: false
}
}
updateFullWindow = (value) => {
this.setState({fullWindow: value});
}
componentWillReceiveProps(nextProps) {
this.setState({fullWindow: nextProps.fullWindow});
}
Iはまた、fullWindow
および他の状態のプロパティを更新することができるParent
成分を有します。
親コンポーネント:
fullScreenCallback =() => {
this.setState({hideDetails: false});
}
clickCallback =() => {
this.setState({fullWindow: true}));
}
render() {
return (
<div>
<div onClick={this.clickCallback}>Click Me</div>
<Child {...this.state}/>
</div>
);
}
私が持っている問題は、componentWillReceiveProps
関数が戻っdefaultProps
に設定された小道具デフォルト値の値にChild
状態にfullWindow
プロパティを設定し、updateFullWindow()
でsetState
を上書きしていることです。これは、小道具がnextProps
に渡されているため、他の状態が親で更新されるためです。
clickCallback
を実行して、明示的に
fullWindow
プロパティを変更されたとき、子状態
fullWindow
が
nextProps
に変更したいです。
これを行うにはどうすればよいですか?