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'}]。这是否回答了您的问题?