Sepertinya componentWillReceiveProps
akan sepenuhnya dihapus dalam rilis mendatang, mendukung metode siklus hidup baru getDerivedStateFromProps
: getDerivedStateFromProps statis () .
Setelah diperiksa, sepertinya Anda sekarang tidak dapat membuat perbandingan langsung antara this.props
dan nextProps
, seperti yang Anda bisa lakukan componentWillReceiveProps
. Apakah ada cara untuk mengatasi ini?
Juga, sekarang mengembalikan objek. Apakah saya benar mengasumsikan bahwa nilai pengembalian pada dasarnya this.setState
?
Di bawah ini adalah contoh yang saya temukan online: Negara bagian berasal dari properti / negara bagian .
Sebelum
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Setelah
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