收藏
回答

this[((intermediate value)... is not a function

微信后台的完整报错:

this[((intermediate value)(intermediate value) , (0 , e.default)(...) , (0 , e.default)(...) , (0 , e.default)(...) , a)[n]] is not a function; [Component] Event Listener Error @ components/auth_btn/auth_btn#(anonymous)

TypeError: this[((intermediate value)(intermediate value) , (0 , e.default)(...) , (0 , e.default)(...) , (0 , e.default)(...) , a)[n]] is not a function

at ye.onAuthSuccess (https://usr/app-service.js:15620:30977)

出错处代码:

 onAuthSuccess(e) {
    console.log('bargain onAuthSuccess', e)
    const { from } = e.detail
    const { authFrom } = this.data
    const methodMap = {
      [authFrom.don]: 'tapHelpBargainByDon',
      [authFrom.app]: 'tapHelpBargainByAppNavigate',
      [authFrom.video]: 'tapHelpBargainByVideoAd',
    }
    const methodName = methodMap[from]
    this[methodName]() // 应该是这里出错
  },


出错处应该是最后一行,但是看开发代码无相关报错代码,也没发现异常、测试设备也无法复现,推测是被微信开发工具打包编译上传以后的代码出错了,

搜索了相关报错(intermediate value),基本都是因为分号问题导致的,猜测是微信的打包有什么bug,但报警群频繁报错无法跟踪也无法解决,很头疼~

希望官方人员能给出指导建议

——————————————————————

更新:

给个锤子建议(/敲打/doge),遇到几乎没有相同情况的报错时先review自己代码。本例中是因为某些调用onAuthSuccess方法的地方没有绑定data-from,导致找不到对应的methodName。对于这种“理应”不出现的意外情况可以考虑增加try catch并上报异常

最后一次编辑于  2020-07-21
回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-07-17
    先打印methodName是什么吧
    


    2020-07-17
    有用
    回复 5
    • 光
      2020-07-17
      当做methodName是methodMap是三个key之一就行,是字符串
      2020-07-17
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-07-17回复
      console.log看看
      2020-07-17
      回复
    • 光
      2020-07-17回复o0o有脾气的酸奶
      字符串 "tapHelpBargainByAppNavigate",会调用同名的method方法
      2020-07-17
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-07-17回复
      this里存在这个方法吗
      直接写死看看
      this['tapHelpBargainByAppNavigate']()
      2020-07-17
      回复
    • 光
      2020-07-17回复o0o有脾气的酸奶
      这样是可以的,本地测试都没有问题
      2020-07-17
      回复
登录 后发表内容
问题标签