以下のように見えますcomponentWillReceiveProps
全く新しいライフサイクルメソッドの賛成で、今後のリリースで段階的に廃止される予定であるgetDerivedStateFromProps
:静的getDerivedStateFromPropsを() 。
調べてみるthis.props
とnextProps
、のようにとを直接比較できないようになっていますcomponentWillReceiveProps
。これを回避する方法はありますか?
また、オブジェクトを返すようになりました。私は戻り値が本質的にであると仮定するのは正しいthis.setState
ですか?
以下は私がオンラインで見つけた例です:状態はprops / stateから派生しました。
前
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
後
class ExampleComponent extends React.Component {
// Initialize state in constructor,
// Or with a property initializer.
state = {};
static getDerivedStateFromProps(nextProps, prevState) {
if (prevState.someMirroredValue !== nextProps.someValue) {
return {
derivedData: computeDerivedState(nextProps),
someMirroredValue: nextProps.someValue
};
}
// Return null to indicate no change to state.
return null;
}
}
componentWillReceiveProps