我正在使用react-redux并根据prop的值重定向用户。如何处理控制台中产生的错误?
我使用过useEffect将用户推送到基于道具的不同组件。我不确定这是否是正确的方法。
useEffect(() => {
if (isAuthenticated) {
history.push("/");
} else if (signup) {
history.push("/signup");
}
});
无法在已卸载的组件上执行React状态更新。这是 无操作,但表示您的应用程序内存泄漏。修理, 取消useEffect清理中的所有订阅和异步任务 功能。
答案 0 :(得分:0)
如果我们提供isAuthenticated变量以使用useEffect,则只有在isAuthenticated是change时,它才会运行
useEffect(() => {
if (isAuthenticated) {
history.push("/");
} else if (signup) {
history.push("/signup");
}
},[isAuthenticated]); // pass isAuthenticated it will check changes of isAuthenticated and run our useEffect callback if changes found
答案 1 :(得分:0)
useEffect():在每个渲染周期之后以及每个渲染周期
useEffect(()=> {}); //毫无争议地充当componentDidUpdate
useEffect(()=> {},[]); //具有空数组的论点充当componentDidMount
(第一次渲染后仅运行一次)
useEffect(() => {
if (isAuthenticated) {
history.push("/");
} else if (signup) {
history.push("/signup");
}
},[isAuthenticated]); //passing a value will remove the error that you are receiving and check for the variable responsible for change , if changes are found it will run useEffect callback.