收藏
回答

typescript封装Component时,如何获取this.setData?

export interface BaseComponent extends WechatMiniprogram.Component.InstanceMethods<WechatMiniprogram.Component.DataOption> {

}

type TIsPage = false

export class BaseComponent implements WechatMiniprogram.Component.Options<
  WechatMiniprogram.Component.DataOption,
  WechatMiniprogram.Component.PropertyOption,
  WechatMiniprogram.Component.MethodOption,
  WechatMiniprogram.IAnyObject,
  TIsPage
  >{

}

我封装了一个BaseComponent

但是在实际使用中,在method 方法中调用this.setData是undefined

请问应该如何解决?

同样的方式我封装Page是可行的


具体的调用方式类似下面

class AComponent extends BaseComponent {
 methods = {
  fn: () => {
  this.setData({})
}
}
}

Component(new AComponent())


最后一次编辑于  2021-04-19
回答关注问题邀请回答
收藏

2 个回答

  • 波吉
    波吉
    2021-04-20

    向大佬学习

    2021-04-20
    有用
    回复
  • Cjiang
    Cjiang
    2021-04-19

    log下this指向。

    2021-04-19
    有用
    回复 3
    • 周小垂垂垂垂垂
      周小垂垂垂垂垂
      2021-04-21
      当fn是arrow function时,指向如图,并没有setData方法
      2021-04-21
      回复
    • 周小垂垂垂垂垂
      周小垂垂垂垂垂
      2021-04-21
      当改为function声明的时候,能够正常运行,但是vscode会报错
      2021-04-21
      回复
    • Cjiang
      Cjiang
      2021-04-21回复周小垂垂垂垂垂
      不是有data吗? vscode 自己看看报了什么错,检查下是否是语法问题?
      2021-04-21
      回复
登录 后发表内容