Il semble componentWillReceiveProps
qu'il sera complètement éliminé dans les prochaines versions, au profit d'une nouvelle méthode de cycle de vie getDerivedStateFromProps
: static getDerivedStateFromProps () .
Après inspection, il semble que vous ne puissiez plus faire une comparaison directe entre this.props
et nextProps
, comme vous pouvez le faire componentWillReceiveProps
. Y a-t-il un moyen de contourner cela?
En outre, il renvoie maintenant un objet. Ai-je raison de supposer que la valeur de retour est essentiellement this.setState
?
Voici un exemple que j'ai trouvé en ligne: État dérivé des 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;
}
}
componentWillReceiveProps