vue中如何把子组件中值传给父组件

本来项目用饿了么框架写的,但是有个组件需要自己去实现,于是就写了如下的代码

  • 父组件
<template>
    <div style="margin:50px">
        {{checked}}
        <cmsChecked :data="formData" v-model="checked"></cmsChecked>
    </div>
</template>
---------------------------
return {
    checked:[],
    formData:[
        {
            id:1,
            label:"蜘蛛"
        },
        {
            id:2,
            label:"蝙蝠"
        },
        {
            id:3,
            label:"红玫瑰"
        }
    ]
}
  • 子组件
<template>
    <div style="margin:50px">
        {{checked}}
        <cmsChecked :data="formData" v-model="checked"></cmsChecked>
    </div>
</template>
---------------------------
return {
    checked:[],
    formData:[
        {
            id:1,
            label:"蜘蛛"
        },
        {
            id:2,
            label:"蝙蝠"
        },
        {
            id:3,
            label:"红玫瑰"
        }
    ]
}

但是现在写出来之后,子组件的值一直传不到父组件中,现象就是无论怎么选中,父组件的check始终为空。很是苦恼。

后来终于发现,原来是因为父组件中没有接受$emit传来的值,犯了低级的错误,作如下修改

  <cmsChecked @value="value" :data="formData" v-model="checked"></cmsChecked>
  methods:{
  value(val){
     console.log(val)
  }
  }

接着把val值赋给checked:[]即可

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理