如何在Redux中存储的数组列表中更新对象值

维平·杜比

应用程序需要将用户详细信息列表存储在数组中。用户详细信息可以是:姓名,电子邮件,图像等。我正在使用redux来存储用户详细信息数据。这是一个减速器

const initialState = {
  user: []
};
function rootReducer(state = initialState, action) {

  if (action.type === 'ADD_USER') {
    return Object.assign({}, state, {
      user: state.user.concat(action.payload)
    });

  }
  if (action.type === 'REMOVE_USER') {
    //return Object.assign({}, initialState)
    return {
      ...state,
      user : []
    }

  }
  if (action.type === 'CHANGE_USER') {


  }


  return state;
};
export default rootReducer;

要添加用户,我将像这样调度

 let user_id = response[0][1]
          let user_name = response[1][1]
          let user_image = response[2][1]
          let email = response[3][1]

            this.props.add({ user_id, user_name, user_image, email });

现在假设我要更改电子邮件或用户名,那么如何更改/更新特定字段(例如电子邮件)?目前我正在这样做

this.props.change({ user_id : 1, user_name : 'sdfd', user_image:'', email:'[email protected]' });

这通过了一个动作

CHNAGE_USER

但是我不知道如何更改用户列表中的特定关键数据。假设我要在Redux存储区的用户列表中更改用户ID为3的用户电子邮件?

很酷的家伙

您可以.map()用来创建更新的用户列表,在.map()逻辑中,在其中标识与您的操作负载匹配的用户的ID,然后更新其信息。尝试这样的事情:

  if (action.type === 'CHANGE_USER') {
     return {
         user: state.user.map((user) => {
            if(user.user_id === action.payload.user_id){
               return {
                  ...user,
                  ...action.payload
               }
            } else {
               return user
            }
         })
     }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Redux 中存储具有数组作为值的对象数组?

如何在redux中更新对象中的特定值

如何在函数组件中呈现 redux 存储值?

如何在redux中更新对象内的数组

如何在Java中存储和读取对象的数组列表?

如何在数组列表中存储解析对象数据

如何在数组中存储对象列表?

Redux - 更新对象数组中的值

如何在Redux中更新数组内的单个值

如何更新Vuex存储数组中的对象?

在Redux中的React中更新数组中对象的值

如何在Cassandra中存储对象数组

如何在Redis中存储对象数组?

如何在列表中存储值

如何在 JavaScript 的数组中存储值?

如何在字典中存储数组值?

如何从存储在列表中的对象数组中获取每列值

如何在对象数组列表中存储具有自己的数据类型的列表

如何在 Redux 中的 asyncThunk.fulfilled 操作期间更新数组中的对象

如何在不更新列表的同级对象的情况下更新映射列表中的值?

如何在Javascript中更新对象数组中每个对象的值?

如何使用 Redux 中的传入对象更新状态(对象数组)?

如何在Reducer中更新数组对象

调用动作时,如何在React Redux中更改数组中对象的值?

如何在Redux Reducer中更新2D数组中的值?

如何在Redux状态存储中的对象内添加新的键/值对?

如何在Java中将整数类型值或对象类型值存储到char数组中

如何使用 React/Redux 更新存储中的特定对象?

调用onchange文本时(在平面列表中)如何更新对象数组中的值