Я думаю, что лучшее место для обработки таких ситуаций и предотвращения повторного рендеринга / бесконечных циклов - это обрабатывать его в getDerivedStateFromProps методе react
жизненного цикла.
state = {
firstName: "",
lastName: "",
email: "",
password: ""
msg: null,
prevPropMsg: null // we don't need this state, we can re-use msg state if you are not mutating msg state apart from in getDerivedStateFromProps method
};
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.error !== prevState.prevPropMsg) {
// check for register error
if (nextProps.error.id === "REGISTER_FAIL") {
return {
msg: nextProps.error.msg.message,
prevPropMsg: nextProps.error.msg.message
};
} else {
return {
msg: null,
prevPropMsg: null
};
}
}
return null;
}
render() {
console.log(this.state)
}