Es sieht so aus, componentWillReceivePropsals 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.propsund 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