Es sieht so aus, componentWillReceiveProps
als würde es in den kommenden Releases zugunsten einer neuen Lebenszyklusmethode vollständig auslaufen getDerivedStateFromProps
: statisch getDerivedStateFromProps () .
Nach der Inspektion sieht es so aus, als ob Sie jetzt keinen direkten Vergleich zwischen this.props
und durchführen können nextProps
, wie Sie es können componentWillReceiveProps
. Gibt es einen Weg daran vorbei?
Außerdem wird jetzt ein Objekt zurückgegeben. Kann ich zu Recht davon ausgehen, dass der Rückgabewert im Wesentlichen ist this.setState
?
Unten ist ein Beispiel, das ich online gefunden habe: Status abgeleitet von Requisiten / Status .
Vor
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Nach dem
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