#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 перед его обновлением (и вы можете сохранить его), и, как вы знаете, вы можете обновить его с помощью действия