Объект в состояние Redux
Можно ли в состояние передать объект ? Я передавал в состояние строчку, число, но вот объект не получается
const defaultState = {
cash: 0,
money: {},
}
const reducer = (state = defaultState, action) => {
switch (action.type) {
case 'ADD_CASH':
return { ...state, cash: (state.cash = action.payload) }
case 'GET_CASH':
return { ...state, cash: state.cash - action.payload }
case 'ADD_MONEY':
return { ...state, money: (state.money = action.payload) }
case 'GET_MONEY':
return { ...state, money: state.money - action.payload }
default:
return state
}
}
Из-за money: {} выдает ошибку Вроде бы можно передать через массив объект
Ответы (1 шт):
Автор решения: Oleksandr
→ Ссылка
Если нужно передать, нужно передавать (Простыми словами вернуть копию). А вы же мутируете, ногами заталкиваете payload в money так делать нельзя потому что вы потеряете возможно обновления состояния. Возможно стоит обратить внимание на изучение JavaScript прежде чем заходить в фреймворки (Не обижайтесь, мое мнение, может это просто опечатка).
const defaultState = {
cash: 0,
money: {},
}
const reducer = (state = defaultState, action) => {
switch (action.type) {
case 'ADD_CASH':
return { ...state, cash: action.payload }
case 'GET_CASH':
return { ...state, cash: state.cash - action.payload }
case 'ADD_MONEY':
return { ...state, money: action.payload }
case 'GET_MONEY':
return { ...state, money: state.money - action.payload } // Не будет работать, нельзя проводить математические операции с обьектами.
default:
return state
}
}