你想反馈一个 Bug 还是 提一个需求?
是Bug
如果是 Bug:
* Bug 表现是什么?预期表现是什么?
官方文档中说生命周期函数可以是methods中定义的方法名
* 如何复现?
* 提供一个最简复现 Demo
定义一个组件,然后
ready:change,或者ready:'change'、this.methods.change等尝试过都无效
methods:{
change:function(){console.log(1)}
}
框架类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|
小程序 | component | 工具 | 因为编译通不过,所以没有实机运行 | 1.9.2 |
我的意思是
ready: () => {
this.change()
}
这种也无法调到,this 为 undefined
注意 JS 的箭头函数没有 this (不明白的话可以查询一下 JS 语法)。
下面的报错应该是别的问题(比如连续调用了 wx.navigateTo 导致有跳转失败了)。
不需要中间的 “methods” ,直接 this.change 就行了。
* 提供一个最简复现 Demo
定义一个组件,然后
ready:change,或者ready:'change'、this.methods.change等尝试过都无效
methods:{
change:function(){console.log(1)}
}
按照楼主确实不行,注释这边要么就提供示例,要么就是误导别人,坑爹,还有一个地方也是
表达什么意思
在ready中console.log(this),你就能找到答案。
好的,谢谢,这种是可以的
@LastLeaf
不行,直接ready:this.change,这样会报错,提示未定义,如图
我说的是自定义组件,麻烦你能把整个代码结构贴出来吗?
比如这个样子,定义的函数不是放在methods里面的,和onShow,onLoad同级,一样可以this调用
抱歉,可能我没有理解你的意思,你说的写在methods外面是指的写在component构造器外面是吧,我试了下,这样是可以的;但是这样就无法调用到component内部的数据了。。。
我写了个demo试了下,写在methods外面根本调不到这个方法,反正我是没调用成功