vue $emit 接收不到子组件的数据

16 篇文章 1 订阅

最近碰到个问题,搞了老半天发现问题所在哭笑不得,在这里记录一下。

父组件: father.vue

  <template>  
      <child @toFather="fromChild(arr)"></child>
  <template>  
  <script>  
  import child from 'child.vue'
 export default {  
    components: {
    	child
   },
   methods:{  
     fromChild (arr) {
       console.log(arr);
     }
   }  
 }  
</script>  
子组件:child.vue
<template>  
   <div>  
    <button @click="toFather"></button>
   </div>  
</template>  
<script>  
 export default {  
   methods:{  
     toFather () {
       let arr = [1,2,3,4]
       this.$emit('toFather', arr)
     } 
   }  
 }  
</script>  
结果弄了老半天,发现子组件传给父组件的一直是一个 vue 对象,而不是 想要的数组。

解决:

不要在父组件的 函数中添加 参数   如下

  <template>  
  -    <child @toFather="fromChild(arr)"></child>
  +    <child @toFather="fromChild"></child>
  <template>  
  <script>  
  import child from 'child.vue'
  export default {  
   components: {
    	child
   },
   methods:{  
     fromChild (arr) {
     	console.log(arr);
     }
   }  
 }  
</script>  
不要在
<child @toFather="fromChild"></child>
中添加参数,这样就能获得想要的  子组件传递过来的参数了。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值