【问题标题】:Calling dispatch in useEffect?在 useEffect 中调用调度?
【发布时间】:2020-08-11 00:46:12
【问题描述】:

目前我只是在 useEffect 钩子中调用它,而不是将它作为依赖项,因为我只希望它运行一次。然而,这给了React Hook useEffect has a missing dependency: 'dispatch'. 我应该向依赖项添加调度还是有更好的做法?

  useEffect(() => {
    dispatch(handleGetUser());
  }, []);

【问题讨论】:

    标签: redux react-redux use-effect


    【解决方案1】:

    调度函数在重新渲染之间不会改变。 eslint 警告不知道每个函数的作用以及是否会重新创建它,因此它会显示警告以提示用户是否错过了某些内容

    在这种情况下,您可以安全地禁用警告,并且不将调度包含为依赖项

      useEffect(() => {
        dispatch(handleGetUser());
    
        // eslint-disable-next-line react-hooks/exhaustive-deps
      }, []);
    

    即使您将调度作为依赖项包含在内,您也不会看到副作用,因为调度不会改变,除非暴露它的库有错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-29
      • 2019-09-18
      • 2020-09-21
      • 2022-01-25
      • 2020-05-25
      • 2022-01-09
      • 2021-02-11
      相关资源
      最近更新 更多