Search code examples
javascriptreactjsredux

How to save an object in redux?


I build an app in React with Redux and I try to send to my state an object and I try to save it in 'thisUser' but I don't know how to write that 'return' because mine doesn't work.

My Redux state:

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
    }
}

Dispatch method:

dispatch({ type: "users/addUser", payload: new_user });

Can you tell me how to write that return, please?


Solution

  • If you want to append new user then why are you using object type. You should use 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
      }
    }
    

    Or

    If you want to save only single user object then change only that line in your code:

       return { ...state, thisUser: action.payload }