wepy mixin 内的 this.methods 只包含组件内的 methods 字段定义的方法集,而未包含 mixin 内定义 methods,返回 {}

zbsbpyhn  于 2022-10-22  发布在  其他
关注(0)|答案(2)|浏览(157)

Description

mixin 里定义了用于接受父元素 events 广播(broadcast)事件的函数,响应函数中想调用同样在 mixin 里定义的 methods,发现 this.methods 是 {}。经测试,mixin 内的 this.methods 只包含组件内的 methods 字段定义的方法集。

import wepy from 'wepy'

export default class abcHandle extends wepy.mixin {
    methods = {
        confirmHandle (needValid, event) {
           // todo
        }
    }

    events = {
        autoNext (curQuestionId) {
                // Bug:this.methods 为 {},需要将 methods 放到组件里才能获取
                // this.methods.confirmHandle.call(this, false) // 报错!!
            }
        }
    }
}

Environment

  • Platform: 开发者工具
  • Platform version: 开发者工具内的 iPhone 6,其余模拟器应该一样
  • Wechat version: 基础库 2.4.0
  • wepy-cli version: 1.7.3
  • wepy version: 1.7.2

Observed Results

在 mixin 内,拿不到 mixin 内定义的 methods,返回 {},只能拿到组件内定义的 methods

Expected Results

能在 mixin 内拿到 mixin 定义的 methods

相关问题