React Hook useCallback缺少依赖项。包括它或删除依赖项数组react-hooks / exhaustive-deps

时间:2019-10-15 11:05:39

标签: reactjs react-hooks

我在组件中使用了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]);

但是仍然出现相同的错误。但是,我发现了一个类似的question,答案中提到将函数声明为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));
    });
  };
};

是否有解决此警告的解决方案?

0 个答案:

没有答案
相关问题