componentWillReceivePropsYeni bir yaşam döngüsü yöntemi lehine gelecek sürümlerde tamamen aşamalı olarak kaldırılacak gibi görünüyor getDerivedStateFromProps: static getDerivedStateFromProps () .
İnceleme sonucunda, artık this.propsve arasında nextPropsolduğu gibi doğrudan bir karşılaştırma yapamayacağınız anlaşılıyor componentWillReceiveProps. Bunun etrafında bir yol var mı?
Ayrıca, şimdi bir nesne döndürür. Dönüş değerinin temelde olduğunu varsaymak doğru this.setStatemudur?
Aşağıda çevrimiçi bulduğum bir örnek var: sahne / durumdan türetilen durum .
Önce
class ExampleComponent extends React.Component {
state = {
derivedData: computeDerivedState(this.props)
};
componentWillReceiveProps(nextProps) {
if (this.props.someValue !== nextProps.someValue) {
this.setState({
derivedData: computeDerivedState(nextProps)
});
}
}
}
Sonra
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