vue中组件数据回显后无法清空

本文介绍了在Vue中,子组件无法直接修改父组件传来的值的问题,并提出了两种解决方案。一是通过深拷贝父组件传入的值在子组件内部操作;二是利用$emit通知父组件来改变值,实现父子组件间的通信。这两种方法确保了数据的正确流动和状态管理。
摘要由CSDN通过智能技术生成
    这种情况一般出现在  父组件  传值给  子组件,我们通过props接收子组件的值,在子组件内进行回显,回显完成后进行清空,发现清空不了。在这种时候我们要记住在子组件是不能更改父组件的值的。
    有两种方法可以帮助我们清空这个值。
    1:比较暴力的方法,我们将从父组件获取到的值重新深复制一份,在子组件里使用新的数据,这样就可以清空值了。
    created() {
		this.selectObj = JSON.parse(JSON.stringify(this.formInline))
    },
    2:在子组件更改时通过一个方法告知父组件,让父组件进行更改,这样传到子组件的值就会相应更改。这涉及到父子组件通信。
    父子间通信:(父传子)
    父组件:<operate
    		    :isOperat="flag"
    		    :formInline="dataadd"s"
  		  ></operate>
    子组件:props: {
		  	    isOperat: String,
		  	    formInline: Object,
		  }
   (子传父)
     子组件:
        <input @click="sendMsg" type="button" value="给父组件传递值">
            方法:sendMsg(){
     //func: 是父组件指定的传数据绑定的函数,this.msg:子组件给父组件传递的数据
                       this.$emit('func',this.msg)
      }
     父组件:<child @func="getMsgFormSon"></child>
			方法:getMsgFormSon(data){
					   this.msgFormSon = data
					   console.log(this.msgFormSon)
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值