Construyo una aplicación en React con Redux y trato de enviar a mi estado un objeto y trato de guardarlo en 'thisUser' pero no sé cómo escribir ese 'return' porque el mío no funciona.
Mi estado Redux:
const initialState = { thisUser: {} } export function usersReducer(state = initialState, action) { switch (action.type) { case 'users/addUser': return { ...state, thisUser: { ...state.thisUser, ...action.payload} } //the problem default: return state } }Método de envío:
dispatch({ type: "users/addUser", payload: new_user });¿Puede decirme cómo escribir esa devolución, por favor?
Si desea agregar un nuevo usuario, ¿por qué está utilizando el tipo de objeto? Debe usar Array Type thisUser.
const initialState = { thisUser: [] } export function usersReducer(state = initialState, action) { switch (action.type) { case 'users/addUser': return { ...state, thisUser: [ ...state.thisUser,action.payload ] } default: return state } }O
Si desea guardar solo un objeto de usuario único, cambie solo esa línea en su código:
return { ...state, thisUser: action.payload }Es mejor usar un tipo de matriz si tiene una lista de usuarios.
Si tiene un caso en el que necesita usar un objeto, simplemente cambie los corchetes [] en mi código a llaves {}.
const initialState = { thisUser: [], } export function usersReducer(state = initialState, action) { switch (action.type) { case 'users/addUser': return { ...state, thisUser: [ ...state.thisUser, ...action.payload]} default: return state } }