Схоже componentWillReceiveProps
, в наступних випусках буде повністю припинено використання на користь нового методу життєвого циклу getDerivedStateFromProps
: статичного getDerivedStateFromProps () .
Після огляду, схоже , що ви зараз не в змозі зробити пряме порівняння між this.props
і nextProps
, як ви можете в componentWillReceiveProps
. Чи є спосіб обходити це?
Крім того, він тепер повертає об'єкт. Чи правильно я вважаю, що повернене значення є по суті this.setState
?
Нижче наведено приклад, який я знайшов в Інтернеті: Держава, отримана від реквізиту / штату .
До цього
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Після
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