componentWillReceiveProps
Yeni 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.props
ve arasında nextProps
olduğ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.setState
mudur?
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