javascript - 如何使用reducer将对象添加到数组中

标签 javascript arrays reactjs redux immutability

//我需要使用通讯录的reducer将对象添加到数组中

// reducer

const addContact = (contacts = [], action) => {
  let contactsArr = [{}];
  if (action.type = "ADD_CONTACT") {
    return [...contactsArr, action.payload];
  }
  return contacts;
};

Action

export const addContactRed = contact => {
  return {
    type: "ADD_CONTACT",
    payload: contact
  };
};


{
type:"ADD_CONTACT",
payload:{name:"xyz",phonenum:10101001}
}

{
type:"ADD_CONTACT",
payload:{name:"abc",phonenum:0101001}
}

//分派(dispatch)两个 Action 后,我想要的最终数组是

//contactsArr

[
{name:"xyz",phonenum:10101001},
{name:"abc",phonenum:0101001}
]

最佳答案

你不需要太多的 init let contactArr = [{}];它将重置您的 reducer 中的存储值。只需使用联系人存储变量

const addContact = (contacts = [], action) => {
 // if (action.type = "ADD_CONTACT") {
  if (action.type === "ADD_CONTACT") {
    return [...contacts, action.payload];
  }
  return contacts;
};

关于javascript - 如何使用reducer将对象添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693501/

相关文章:

Javascript 将 [url=] 转换为 html 链接

javascript - Phonegap Javascript 不要询问麦克风权限

javascript - 在没有完整页面加载的情况下引导 AHAH

c - 语句的输出怎么是 'E'

javascript - 在 ThreeJS 中打乱位置数组

javascript - 从 Redux 表单获取字段值返回 'undefined'

javascript - 如何使用 react-router-dom 中的 Mocha 测试 `NavLink`

javascript - 在 Javascript 中获取今天的日期

arrays - Video.js - 如何在一个页面中引用多个视频?

ReactJS - 为不同的 URL(路由路径)提供不同的内容,因此它看起来像一个多页面应用程序