1

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

当前的静态数据是,

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数组中。

4

2 回答 2

2

试试这个方法,

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);

于 2020-11-24T11:55:33.643 回答
0

我看到至少两个快速解决方案:

  1. 您创建对象(包括其 id 属性),然后将其添加到结果数组中。
  2. 您将 id 属性添加到结果数组中的最后一个对象(因为您谈论“新创建的数据”,我假设它始终是最后一项)。如果是这种情况,您可以通过使用获取结果数组中的最后一项result.length -1
于 2020-11-24T11:56:08.507 回答