Есть хук 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} />;
};
};