关于useEffect的警告

来源:11-10 【登录页面】SignOut登出业务处理

慕粉4283821

2021-03-20

useEffect(() => {
    if (jwt !== null) {
      history.push("/");
    }
  }, [jwt]);

老师,对于上面的代码,项目运行时会提示警告,如下,貌似提示需要把history也放入 useEffect的依赖中,但是history应该不会变化把,怎么去除这种警告呢。

src/pages/signIn/SignInForm.tsx
  Line 29:6:  React Hook useEffect has a missing dependency: 'history'. Either include it or remove the dependency array  react-hooks/exhaustive-deps

还有这里也有,提示需要把dispatch 和 keywords 放入。

useEffect(() => {
    dispatch(
      searchProduct({
        nextPage: 1,
        pageSize: 10,
        keywords,
      })
    );
  }, [location]);
src/pages/search/SearchPage.tsx
  Line 33:6:  React Hook useEffect has missing dependencies: 'dispatch' and 'keywords'. Either include them or remove the dependency array  react-hooks/exhaustive-deps
写回答

1回答

阿莱克斯刘

2021-03-21

这些警告我也没注意,你观察的很仔细。是的,出现这样的警告虽然不会影响网站运行,但是的确很烦人。修复这个问题就按照警告的要求,把history、dispatch和keywords加入依赖列表就好了。除非route变化,否则history不会发生改变;dispatch全局范围内不会改变;而keyword来自url,只要url不变useeffect也不会激活。

0
0

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程