@DanceMonkeyTime

Как предотвратить перезаписывание стора из-за persist?

Всем привет.
Есть у меня проблема.

При клике на кнопку back в браузере, у меня меняется урла и диспатчиться екшн
Код
Effect

useEffect(() => {
    const activeStep = screenSteps[screenSteps.length - 1];
    if (
      activeStep.localPath !== router.query.localPath &&
      router.query.localPath
    ) {
      dispatch(updateScreenStep('BACK'));
    }
  }, [router.query]);



Action и Reducer

export const updateScreenStep = (action: Action, stepData?: IStep) => ({
  type: ResearchActionTypes.UPDATE_SCREEN_STEP,
  payload: {
    stepData,
    action,
  },
});


export const reduceUpdateScreenStep = (
  state: IState,
  payload: IScreenStepData
): any => {
  const { action, stepData } = payload;
  const newScreenData = [...state.screenSteps];

  if (action === 'NEXT') newScreenData.push(stepData);
  else newScreenData.pop();

  return newScreenData;
};



Все работает хорошо, но у меня в проекте также подключен persist store и его екшн (__NEXT_REDUX_WRAPPER_HYDRATE__) имеет старый стор и перезаписывает новый стор на старый. Я думаю, это потому что страница перезагружается.

Возможно кто-то знает как это можно пофиксить?

Мой екшн с обновленным стором

5f4fedda703d0831288391.png


Persist со старым который перезаписывает

5f4fee06b83f0722433580.png
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы