vue 父子组件互相传值容易出现的报错

对于父子组件之间的互相传值,报错如下:

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "propTextTip"

大概意思是:避免直接更改一个PROP,因为每当父组件重新呈现时,该值就会被覆盖。

1098711-20180705165051895-2075169569.png

 

解决办法:

不要直接引用父组件传过来的值,可以把接收到的父组件的值赋值给一个新的参数

 1 <template>
 2   <div>
 3     <span>子组件</span>
 4     <input type="text" name="" v-model.trim="textTip">
 5     <button type="button" class="btn btn-success btn-xs" v-on:click="callFather">通知父组件</button>
 6   </div>
 7 </template>
 8 <script>
 9 
10 
11 export default {
12   data() {
13     return {
14       textTip:this.propTextTip
15     }
16   },
17    props:['propTextTip'],
18   methods:{
19       callFather:function() {
20           //发射信号
21           console.log(this.textTip);
22           this.$emit('getCalled',this.textTip);
23           //其中 getCalled 是一个自定义的事件,功能类似于一个中转
24       }
25   }
26 }
27 
28 </script>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值