@DeniSidorenko

Как сделать действия после того как State redux обновится?

Добрый день, работая с Redux столкнулся уже 2 раз с такой проблемой. Как сделать действия на JS только после того как State обновился. К примеру есть reducer для корзины
Код такой
import {
  ADD_TO_CART,
  ADD_QUANTITY,
  SUB_QUANTITY,
  REMOVE_FROM_CART,
  EMPTY_CART,
  UPDATE_PRICE
} from '../actions/actions-types/aside-actions'
let cartInStorage = localStorage.getItem('cart')
let cartInStorageObject = JSON.parse(cartInStorage)
const initialState = {
  cart: cartInStorageObject ||  [],
  totalPrice: 0
}

export default function asideReducer(state = initialState, action) {
  let cart = state.cart
  let cartStringify = JSON.stringify(cart) 
  localStorage.setItem('cart', cartStringify)

  switch (action.type) {
    case ADD_TO_CART:
      let itemInCart = cart.find(item => item.product._id == action.payload.product._id)
      return{ 
        ...state // Example return
      }
    default:
      return state
  }
}


Мне надо данные корзины поставить в localStorage. Но действия у меня выполняются до того как случится action. Я Понимаю почему, ведь код отрабатывает раньше action, но ставить его ниже switch тоже не могу ведь тогда он не выполнится( return остановит функцию ). Так вот вопрос, где лучше всего отследить изменения и ставить в localstorage, ибо на данный момент код не записывает в localstorage последний клик( данные ) а лишь с предпоследнего

Спасибо
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
alex4answ
@alex4answ
Может вообще не попал в суть вашего вопроса, но у store есть subscribe на обновления
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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