首页 > 解决方案 > ReactJS - 如何将键值对添加到数组中?

问题描述

在反应应用程序中,我试图将键值对数据添加到现有数据中,但它不起作用。

当前的静态数据是,

const result = [{
 {id: 0, important: false, name: "Shruthi R", phone: "9834233433", email: "shruthi@gmail.com", work: "NicheSoft", city: "Mysore"},
 {id: 1, important: false, name: "Paridhi Sharma", phone: "8856544422", email: "paridhi@gmail.com", work: "MicroTech", city: "Lucknow"}
];

我正在尝试result通过表单向其中添加数据并以格式获取数据this.props.location.state

现在我想添加id到新创建的数据{important: false, name: "Sona", phone: "23423433", email: "sona@yopmail.com", work: "IBM", city: "Delhi"}

我试图将它添加到这个

this.setState(Object.assign(this.props.location.state, {id: result.length}))
this.setState({list: result.concat(this.props.location.state)});

方式,但它已单独添加,例如[{...}, id: 3]. 如何添加id到最近添加的哈希数据?

我想要一个类似{important: false, name: "Sona", phone: "23423433", email: "sona@yopmail.com", work: "IBM", city: "Delhi", id: 3}or的输出{id: 3, important: false, name: "Sona", phone: "23423433", email: "sona@yopmail.com", work: "IBM", city: "Delhi"},这应该附加到现有result数组中。

标签: arraysreactjshashreact-props

解决方案


试试这个方法,

this.setState(prev => ({list: [...prev, {...this.props.location.state, id:3}] })

const arr = [
 {id: 0, important: false, name: "Shruthi R", phone: "9834233433", email: "shruthi@gmail.com", work: "NicheSoft", city: "Mysore"},
 {id: 1, important: false, name: "Paridhi Sharma", phone: "8856544422", email: "paridhi@gmail.com", work: "MicroTech", city: "Lucknow"}
];

const result = {important: false, name: "Sona", phone: "23423433", email: "sona@yopmail.com", work: "IBM", city: "Delhi"};


const newArray = [...arr, {...result, id:3}]

console.log(newArray);


推荐阅读