我在组件中使用了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));
});
};
};
是否有解决此警告的解决方案?