Реакция состояния Redux не обновляется при использовании не изменяемых методов - PullRequest
0 голосов
/ 09 октября 2019

Привет У меня проблемы с обновлением состояния моего приложения.

Все работает нормально , если я использую методы, нарушающие принцип изменчивости React. Вот мое состояние:

const state= {
    cart: {
        items: [
            {
                productId: "A1",
                quantity: "1",
                unitPrice: "9"
            }
        ]
    }
};

action.payload:

{productId: "A2", quantity: "1", unitPrice: "11"}

это работает с этим:

case ADD_PRODUCT_TO_CART: 
  state.cart.items.push(action.payload);
  return state;

Но я хочу использовать лучшеподход. Вот так:

case ADD_PRODUCT_TO_CART: 
  return {
  ...state, 
  items: [action.payload, ...state.cart.items]   
  };

Но это не обновляет мое состояние. store.getState () выводит исходное состояние.

1 Ответ

0 голосов
/ 09 октября 2019

Вы пропустили клавишу cart.

Это должно работать:

case ADD_PRODUCT_TO_CART: 

  return {
    ...state, 
    cart: {                  // add cart key
      ...state.cart,
      items: [
        ...state.cart.items,
        action.payload       // new items will be the last
      ]
    }
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...