Раньше я использовал componentWillReceiveProps для обновления локального объекта моего компонента после получения данных из redux.
componentWillReceiveProps(nextProps) {
if (nextProps.editUser && !nextProps.loading && !isEqual(this.state.user, nextProps.editUser)){
this.setState({user:{
name:nextProps.editUser.name,
email:nextProps.editUser.email,
}}, function(){
this.setState({addModalUserEdit:true});
});
}
}
Но теперь я хочу использовать shouldComponentUpdate и componentWillUpdate, как в документации по реакции в соответствии с жизненным циклом реакции.
shouldComponentUpdate(nextProps, nextState){
if (nextProps.editUser && !nextProps.loading && !isEqual(this.state.user, nextProps.editUser)){
return true;
}
return false;
}
componentWillUpdate(nextProps, nextState) {
if (nextProps.editUser && !nextProps.loading && !isEqual(this.state.user, nextProps.editUser)){
this.setState({user:{
name:nextProps.editUser.name,
email:nextProps.editUser.email,
}}, function(){
this.setState({addModalUserEdit:true});
});
}
}
но я генерирую ошибку как
"Превышена максимальная глубина обновления. Это может происходить, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений допредотвратить бесконечные циклы. "
Пожалуйста, объясните мне, что я делаю неправильно, чтобы понять жизненный цикл реакции.
Заранее спасибо.