收藏
回答

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

框架类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 component 工具 因为编译通不过,所以没有实机运行 1.9.2

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

是Bug

如果是 Bug:


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

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


* 如何复现?

* 提供一个最简复现 Demo


定义一个组件,然后

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

methods:{

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

}



回答关注问题邀请回答
收藏

13 个回答

  • LastLeaf
    LastLeaf
    2018-02-05

    我的意思是


    ready: () => {

    this.change()

    }

    2018-02-05
    有用
    回复 2
    • 徐彪
      徐彪
      2018-08-22

      这种也无法调到,this 为 undefined


      2018-08-22
      回复
    • LastLeaf
      LastLeaf
      2018-08-22

      注意 JS 的箭头函数没有 this (不明白的话可以查询一下 JS 语法)。


      下面的报错应该是别的问题(比如连续调用了 wx.navigateTo 导致有跳转失败了)。

      2018-08-22
      回复
  • LastLeaf
    LastLeaf
    2018-02-05

    this.methods.change


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

    2018-02-05
    有用
    回复
  • 诗与远方
    诗与远方
    2021-05-12

    * 提供一个最简复现 Demo

    定义一个组件,然后

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

    methods:{

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

    }

    按照楼主确实不行,注释这边要么就提供示例,要么就是误导别人,坑爹,还有一个地方也是

    • WXS 中的变量均为值的引用。

    表达什么意思


    2021-05-12
    有用
    回复
  • Jun
    Jun
    2018-08-07

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

    2018-08-07
    有用
    回复
  • 李倪生
    李倪生
    2018-02-05

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

    2018-02-05
    有用
    回复
  • 李倪生
    李倪生
    2018-02-05

    @LastLeaf

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


    2018-02-05
    有用
    回复
  • 李倪生
    李倪生
    2018-02-05

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

    2018-02-05
    有用
    回复
  • ?.
    ?.
    2018-02-05


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

    2018-02-05
    有用
    回复
  • 李倪生
    李倪生
    2018-02-05

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

    2018-02-05
    有用
    回复
  • 李倪生
    李倪生
    2018-02-05

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

    2018-02-05
    有用
    回复

正在加载...

登录 后发表内容