Sepertinya componentWillReceivePropsakan 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.propsdan 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