如何在 redux 中保存一个对象?

How to save an object in redux?

我在 React 中使用 Redux 构建了一个应用程序,我尝试向我的状态发送一个对象,我尝试将它保存在 'thisUser' 中,但我不知道 如何编写'return'因为我的不行。

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

派送方式:

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

你能告诉我 return 怎么写吗?

如果你想追加新用户,那你为什么要使用对象类型。你应该使用数组类型 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
  }
}

如果您只想保存单个用户对象,则只需更改代码中的那一行:

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

如果您有用户列表,最好使用数组类型。

如果您遇到需要使用对象的情况,只需将我代码中的方括号 [ ] 更改为大括号 { } 即可。

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