Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将新的对象数组附加到当前的状态对象_Javascript_Reactjs - Fatal编程技术网

Javascript 将新的对象数组附加到当前的状态对象

Javascript 将新的对象数组附加到当前的状态对象,javascript,reactjs,Javascript,Reactjs,这是我目前的数据 const [propertyData, setPropertyData] = useState({ propertyName: '', contacts: [ { contactName: 'Person1', contactNumber: 'Number1', }, { contactName: 'Person2', contactNumber: 'Number2',

这是我目前的数据

const [propertyData, setPropertyData] = useState({
    propertyName: '',
    contacts: [
     {
       contactName: 'Person1',
       contactNumber: 'Number1',
     },
     {
       contactName: 'Person2',
       contactNumber: 'Number2',
     },
    ]
})
我试图实现的是像这样向联系人添加另一个对象

contacts: [
     {
       contactName: 'Person1',
       contactNumber: 'Number1',
     },
     {
       contactName: 'Person2',
       contactNumber: 'Number2',
     },
     {
       contactName: 'Person3',
       contactNumber: 'Number3',
     },
    ]
contacts: [
     {
       contactName: 'Person3',
       contactNumber: 'Number3',
     },
    ]
我现在做的就是这个

setPropertyData({
  ...propertyData,
  contacts: [{ ...propertyData.contacts, contactPerson: 'Person3', contactNumber: 'Number3', }]
})
但它所做的是用新数据更新当前数据,而不使用像这样的旧数据

contacts: [
     {
       contactName: 'Person1',
       contactNumber: 'Number1',
     },
     {
       contactName: 'Person2',
       contactNumber: 'Number2',
     },
     {
       contactName: 'Person3',
       contactNumber: 'Number3',
     },
    ]
contacts: [
     {
       contactName: 'Person3',
       contactNumber: 'Number3',
     },
    ]

我总是对使用扩展操作符感到困惑,尤其是当它是一个数组或一个我必须附加到的对象时。请帮忙。谢谢大家!

您可以使用此语法将新对象添加到对象数组中:

setPropertyData({
  ...propertyData,
  contacts: [...propertyData.contacts, {contactPerson: 'Person3', contactNumber: 'Number3'}]
})
setPropertyData({
  ...propertyData,
  contacts: [...propertyData.contacts, { contactPerson: 'Person3', contactNumber: 
            'Number3' }]
})

请尝试联系人:[…propertyData.contacts,{contactPerson:'Person3',contactNumber:'Number3'}]。这是否回答了您的问题?