我具有使用以下方法调度操作的上下文:
const AuthContext = createContext();
...
const loadUser = () => {
try {
dispatch({
type: types.USER_LOADED,
payload: {
user: 'some_data'
}});
} catch(err) {
dispatch({ type: types.AUTH_ERROR });
}
}
然后去减速器
case types.USER_LOADED:
return {
...state,
user: action.payload.user,
};
在组件上,我试图在useEffect方法中调用:
const authContext = useContext(AuthContext);
useEffect(() => {
authContext.loadUser();
}, []);
然后我得到了响应钩子/详尽的下降声:
反应挂钩useEffect缺少依赖项:'authContext'。要么包含它,要么删除依赖项数组react-hooks / exhaustive-deps
我尝试将我的依赖项数组放到authContext上,但遇到了无限循环。 loadUser方法可以按预期工作,但是否可以避免收到此警告?
我也尝试过钩子,但是仍然存在相同的警告,但是在这种情况下,警告会出现在loadUser方法上,但是一切都会按预期进行:
const useAuth = () => {
const {
loadUser
} = useContext(AuthContext);
return {
loadUser
};
};
export default useAuth;
然后:
const { loadUser } = useAuth();
useEffect(() => {
loadUser();
}, []);