页面卡主不动的主要原因
问题 | 解决方案 |
---|---|
useEffect 导致无限跳转 | 确保 useEffect 依赖正确,并加 replace: true |
在 render 期间调用 navigate | 只能在 useEffect 或 事件处理函数 里调用 |
useNavigate 依赖 state ,导致重复执行 | 用 useEffect 监听 state |
React.StrictMode 导致 navigate 触发两次 | 调试时去掉 StrictMode |
useNavigate 在 Router 外部使用 | 确保 BrowserRouter 包裹 App |
目标路由不存在 | 检查 routes 是否包含跳转路径 |
你可以检查你的代码,看是不是出现了这些问题!
如果以上这些问题都没有,那么就换个浏览器,看是否有问题,如果没有,那么说明应该不是我们的问题而是浏览器的问题!
不要死磕这个东西,大多数情况都没有问题!
有可能强制刷新有用,因为有可能之前是错的,现在改了代码对了但是浏览器保存缓存了,或者需要强制刷新才行
最后找了半天还是不知道问题在哪里
还可能是 form 里面的 button 事件冒泡了,然后导致外面的 form 的 submit 事件被意外触发了!
总之还是很奇怪的!
代码基本都没有问题,但是就是没办法找出来卡死的原因!控制台也不报错,页面 f12 也出不来,页面完全卡死!
我们发现把所有的页面路由什么逻辑都注释掉还是会卡住,甚至点击 forget password 都会导致页面卡住!所以问题大概率出现在 LoginForm 这个组件里面,但是不知道为啥