Il ressemble componentWillReceiveProps
va être complètement éliminée dans les versions à venir, en faveur d'un nouveau cycle de vie méthode getDerivedStateFromProps
:statique getDerivedStateFromProps().
Lors de l'inspection, on dirait que vous êtes incapable de faire une comparaison directe entre this.props
et nextProps
, comme vous pouvez vous en componentWillReceiveProps
. Est-il un moyen de contourner cela?
Aussi, elle revient aujourd'hui un objet. Ai-je raison de supposer que la valeur de retour est essentiellement this.setState
?
Ci-dessous est un exemple que j'ai trouvé en ligne: État dérivé d'accessoires/état.
Avant
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Après
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;
}
}