Получите предыдущее и текущее состояние в редукторе Redux

#reactjs #redux #react-redux

#реагирует на #возвращение #реагировать-переделывать

Вопрос:

Я начинаю изучать Redux. В моем приложении у меня есть кнопка. Я вставляю этот btn и получаю объект. Доход от этого объекта action.payload должен быть уменьшен . Объект меняется каждый раз, когда я нажимаю на кнопку. Как я могу сохранить все предыдущее состояние в редукторе и добавить текущее состояние? Чтобы сделать что-то подобное:

 if (action.type === "ADD_ITEM") {  return {  items: [all previous state,   current state],  };  }  

Весь код в редукторе

 const initialState = {  items: [], };  const basket = (state = initialState, action) =gt; {  if (action.type === "ADD_ITEM") {  return {  items: [action.data],  };  }  return state; };  export default basket;  

Ответ №1:

Если вы хотите добавить новые данные в массив, вы можете скопировать существующий массив состояний и добавить новые данные в конец.

 const initialState = {  items: [], };  const basket = (state = initialState, action) =gt; {  if (action.type === "ADD_ITEM") {  return {  ...state, // shallow copy existing state  items: [  ...state.items, // shallow copy existing items  action.data, // append new data  ],  };  }  return state; };  

Ответ №2:

Вы можете получить доступ к значению prev перед его обновлением (и вы можете сохранить его), и, как вы знаете, вы можете обновить его с помощью действия