【发布时间】:2021-06-19 10:17:28
【问题描述】:
基本上,我有这两个页面,一个主页和一个仪表板。每次加载主页时,我都想检查用户是否登录到应用程序。如果用户已登录,则应将他/她重定向到仪表板。据我所知,这段代码应该可以完成这项工作:
const { auth } = useAuth();
const router = useRouter();
useEffect(() => {
let mounted = true;
if (auth != null && mounted) {
console.log(auth);
router.push("/dashboard");
}
return () => (mounted = false);
}, []);
但是,上面的代码不适用于页面加载或页面刷新。问题是我需要它来处理页面加载,并且该代码仅在发生快速刷新时才有效。我将不胜感激有关如何解决此问题的任何建议。
【问题讨论】:
-
您可能希望将
auth添加到useEffect的依赖数组中,以确保它在设置该变量时运行。最有可能的情况是首次加载时auth尚未设置,这意味着router.push不会发生。此外,您可能应该删除mounted变量。 -
谢谢!将
auth添加到依赖数组中解决了这个问题。我不确定删除mounted是否是一个明智的主意,因为我在添加它之前收到了警告。
标签: reactjs routes react-hooks next.js