vue 往数组中push对象

vue 往数组中push对象

在使用vue框架开发时,遇到一个数组push一条对象而导致之前push进去的对象也变成后面进去对象的值。后来发现是因为push对象时,指针一直指向的是之前输入框绑定的对象地址,所以输入框下次输入时值改变,数组内的值也就变了。
		remark_formInline: {
    name: '',
    type: 'IT反馈',
    creator: 'admin',
    time: '' ,
    account:''
    }
this.remark_datas.push(this.remark_formInline);
//按上面这种写法直接push进去,数组内的值会跟着变化。

需要重新申请一个内存空间,然后赋值给他,再push,实现深拷贝。

	    let obj={
	id: Object.keys(this.addDirectoryList.directoryRemark.remark_datas),
	name: this.remark_formInline.name,
	type: this.remark_formInline.type,
	creator: this.remark_formInline.creator,
	time: this.remark_formInline.time,
	account: this.remark_formInline.account,
}
this.remark_datas.push(obj);

注意改变this指向

在这里插入图片描述

Vue3中,往数组里push对象的方法与Vue2相似。你可以使用`push`方法将一个新的对象添加到数组中。例如,你可以使用以下代码将一个新的对象`obj`添加到名为`remark_datas`的数组中: ```javascript this.remark_datas.push(obj); ``` 这样做会将`obj`对象添加到数组的末尾。请确保在使用`push`方法之前,你已经创建了一个新的对象,并将需要的属性赋值给它。这样可以避免对象引用的问题,确保每次push对象都是独立的。 #### 引用[.reference_title] - *1* [vue数组中push对象时的问题](https://blog.csdn.net/weixin_45618937/article/details/126462495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue数组中push对象](https://blog.csdn.net/weixin_53587375/article/details/117285625)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue动态向数组中添加对象(关于v-for,input 和 push)](https://blog.csdn.net/m0_49926116/article/details/123974379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值