微信后台的完整报错:
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并上报异常
直接写死看看
this['tapHelpBargainByAppNavigate']()