effect_tw
@effect_tw

Почему useDispatch при первом срабатывании в useEffect'e записывает в стор другие данные?

Есть хук useAction, который используется в хоке, и при первой отрисовке он записывает в стор не те данные которые ожидались. Приходится харкодить условие для прелоадера.
ХУК useAction :
export const useAction = (action, data, deps = null) => {
  const dispatch = useDispatch();
  useEffect(
    () => {
      dispatch(action({...data})) 
    },
    deps ? [data.url, ...deps] : [data.url,dispatch]
  );
};

ХОК в котором он используется:
export const withTasks = (WrappComponent) => {
  return (props) => {
    const location = useLocation();
    const token = useStore().getState().auth.login.token;
        useAction(getAllTasks, { url: location.pathname , headers:{Authorization: `Bearer ${token}`}},);
    const tasks = useSelector((state) => state.tasks.tasksArr);
       if(!tasks[0] || !tasks){
         return(
         <div>Preload</div>
       )
      }
     return <WrappComponent {...props} tasks={tasks} />;
  };
};
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы