为了账号安全,请及时绑定邮箱和手机立即绑定

方法未定义

https://img1.sycdn.imooc.com//5c91fbc2000119cb04950599.jpg删除的方法一直显示未在实例中定义

正在回答

1 回答

https://img1.sycdn.imooc.com//5c92dea700019f0604970601.jpg

你这个<list-item

           @delete="amputate"   这个@delete是子组件内传出的函数  methods: {

                                                                                                            子组件绑定删除事件

                                                                                                            handerDetlete() {

                                                                                                                this.$emit("delete", this.index);

                                                                                                                其中“detele”是子组件传递给父组件的事件也就是绑定在 <list-item @delete="amputale" :index="index">中的 @delete监听事件

                                                                                                                this.index是子组件传递给父组件的参数 

                                                                                                            }

                                                                                                        }

            >


父组件绑定(调用子组件删除)

methods: {

     amputale(index) {

        // index 是从 this.$emit("delete", this.index); 中 this.index传出的值

        this.list.splice(index, 1);

   }

}

0 回复 有任何疑惑可以回复我~
#1

盛夏黄昏 提问者

<template> <li @click="amputate">{{msg}}</li> </template> <script> export default { props:['msg', 'index'], methods:{ amputate(){ this.$emit('delete', this.index) } } } </script> 子组件是有amputate这个方法的 但是就是这个方法未在实例中定义,但是在呈现期间引用了 报的是这个错
2019-03-21 回复 有任何疑惑可以回复我~
#2

盛夏黄昏 提问者

报这样的错:属性或方法“amputate”未在实例上定义,而是在呈现期间引用。通过初始化该属性,确保该属性在数据选项或基于类的组件中是响应的
2019-03-21 回复 有任何疑惑可以回复我~
#3

好吧真的不知道取什么名字 回复 盛夏黄昏 提问者

那么你在父组件就应该用 <list-item @delete="handerDelete" :index="index"></list-item> <script> export default { data() { return { list: [] } }, methods:{ handerDelete(index){ this.list.splice(index, 1); } } } </script>
2019-03-22 回复 有任何疑惑可以回复我~
#4

好吧真的不知道取什么名字 回复 盛夏黄昏 提问者

主要是handerDelete(你的父组件中名称为amputate的方法没有定义)
2019-03-22 回复 有任何疑惑可以回复我~
#5

盛夏黄昏 提问者 回复 好吧真的不知道取什么名字

不是方法名字的问题,我的子组件中是用的amputate这个名字,父组件中绑定的也是这个amputate名字,这个是没有问题的 问题是没有在实例中定义,需要初始化该属性的问题,我就不知道怎么初始化了,并不是方法名字的问题
2019-03-22 回复 有任何疑惑可以回复我~
#6

yuyan 回复 盛夏黄昏 提问者

你子组件删除方法是amputate,传给父组件的却是@delete, 肯定未定义啊! 应该传给父组件的是@amputate = "父组件中定义的删除函数名" 。明白了没?
2019-05-06 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消

方法未定义

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号