在useEffect中反应上下文方法

问题描述

我具有使用以下方法调度操作的上下文:

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(); 
},[]);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)