首页 > 解决方案 > React Hook useCallback 缺少依赖项。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps

问题描述

useEffect在我的组件中使用以执行异步功能。

 useEffect(() => {
    scoreRequest(answers);
  }, [answers]);

然后我得到这个警告:

React Hook useCallback has a missing dependency: 'scoreRequest'. Either include it or remove the dependency array  react-hooks/exhaustive-deps

我用useCallback来避免这个警告:

const getScore = useCallback(() => {
  scoreRequest(answers);
  }, [answers]);

  useEffect(() => {
    scoreRequest(answers);
  }, [answers]);

但仍然得到同样的错误。但是,我发现了一个类似的问题,并且在答案中提到了将函数声明为 useEffect 或者我可以禁用规则。在另一个文件中声明的函数scoreRequest(),我不想将它与我的组件混合。

export const scoreRequest = (answers: IAnswer[]): ThunkAction<void, AppState, null, Action<string>> => {
  return async (dispatch: Dispatch) => {
    dispatch(startScoreRequest());
    getScoreApi(answers).then((response: AxiosResponse) => {
      const { data } = response;
      const answer = {
        scoreLabel: data.message,
        userScore: data.result.userScore,
        totalScore: data.result.totalScore,
        emoji: data.result.emoji,
        scoreLabelColor: data.result.scoreLabelColor
      };
      dispatch(successScore(answer));
    }, (error: AxiosError) => {
      let errorMessage = "Internal Server Error";
      if (error.response) {
        errorMessage = error.response.data.error;
      }
      dispatch(failScore(errorMessage));
      dispatch(errorAlert(errorMessage));
    });
  };
};

有什么解决方案可以解决此警告吗?

标签: reactjsreact-hooks

解决方案


推荐阅读