У меня есть useSelector, который вернет мне значение, хранящееся в глобальном состоянии, у меня также есть асинхронное c действие с использованием response redux thunk, которое внутри него изменит значение состояния, однако, когда я вызываю свою функцию thunk и после его завершения значение useSelector, похоже, не обновляется немедленно, у него будет небольшая задержка ... Как я могу получить последнее значение из состояния после выполнения функции преобразователя?
// thunk
function savePageData() {
return async(dispatch, getState) => {
await fetch(...).then(res => dispatch(LOAD_DATA, res));
dispatch(somethingelse);
}
}
// main
const myPage = () => {
const user = useSelector(state => return state.user);
const dispatch = useDispatch();
const onClick = async() => {
await dispatch(savePageData());
if (user.active). // here the user after above dispatch is still the old state
{ ... }
}
}
это будет работать таким образом
const onClick = async() => {
return (_dispatch, getState) => {
await dispatch(savePageData());
if (getState().user.active). // now user is latest, but is this a correct way and why?
{ ... }
}
}
или так
const onClick = async() => {
await dispatch(savePageData()).then(
if (user.active). // now user is latest, but is this a correct way and why?
{ ... }
);
}