Добрый день, работая с 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 последний клик( данные ) а лишь с предпоследнего
Спасибо