Sembra componentWillReceiveProps
che verrà gradualmente eliminato nelle prossime versioni, a favore di un nuovo metodo del ciclo di vita getDerivedStateFromProps
: statico getDerivedStateFromProps () .
Al momento dell'ispezione, sembra che ora non sia possibile effettuare un confronto diretto tra this.props
e nextProps
, come è possibile componentWillReceiveProps
. C'è un modo per aggirare questo?
Inoltre, ora restituisce un oggetto. È corretto supporre che il valore di ritorno sia essenzialmente this.setState
?
Di seguito è riportato un esempio che ho trovato online: Stato derivato da oggetti di scena / stato .
Prima
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Dopo
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