reactjs - 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));
});
};
};
有什么解决方案可以解决此警告吗?
解决方案
推荐阅读
- geckofx - GeckoFX webBrowser 控件未正确加载 css
- c# - 按下 ACPI 关闭按钮并关闭显示时未调用 Application.SessionEnding 事件
- sql - 如何根据 dense_rank 结果更新值?
- javascript - js 树中的颜色显示不正确
- php - 此集合实例上不存在属性 [posts]
- sql - 为什么访问中的日期/时间语句不返回值?
- c# - 在 ASP.NET MVC 5 中出现以下错误:不显眼的客户端验证规则中的验证类型名称必须是唯一的。所需
- reactjs - Ant Design for React:显示/隐藏特定列
- html - 在剪辑路径形状的顶部显示卡片
- typescript - TypeScript 可重用函数参数类型