自定义组件的生命周期无法使用methods中定义的方法名

发布于 7 年前作者 houjuan16765 次浏览最后编辑 7 年前来自 ask

你想反馈一个 Bug 还是 提一个需求?

是Bug

如果是 Bug:

* Bug 表现是什么?预期表现是什么?

官方文档中说生命周期函数可以是methods中定义的方法名

* 如何复现?

* 提供一个最简复现 Demo

定义一个组件,然后

ready:change,或者ready:‘change’、this.methods.change等尝试过都无效

methods:{

change:function(){console.log(1)}

}

10 回复
tanjun
tanjun1 楼6 年前

@LastLeaf

不行,直接ready:this.change,这样会报错,提示未定义,如图

xiongyang
xiongyang2 楼6 年前

this.methods.change

不需要中间的 “methods” ,直接 this.change 就行了。

guiying15
guiying153 楼6 年前

我写了个demo试了下,写在methods外面根本调不到这个方法,反正我是没调用成功

guiyingwei
guiyingwei4 楼6 年前

我的意思是

ready: () => {

this.change()

}

taoxiong
taoxiong5 楼6 年前

比如这个样子,定义的函数不是放在methods里面的,和onShow,onLoad同级,一样可以this调用

moxia
moxia6 楼6 年前

好的,谢谢,这种是可以的

bwei
bwei7 楼6 年前

抱歉,可能我没有理解你的意思,你说的写在methods外面是指的写在component构造器外面是吧,我试了下,这样是可以的;但是这样就无法调用到component内部的数据了。。。

leilu
leilu8 楼6 年前

在ready中console.log(this),你就能找到答案。

cuijing
cuijing9 楼6 年前

我说的是自定义组件,麻烦你能把整个代码结构贴出来吗?

sujie
sujie10 楼5 年前

你确定可以写在methods外面?这是自定义组件啊