小程序中添加交易组件时,初始化不能正常点开,点开报这个错误
---HAS NOT INIT PLUGIN, FAIL START REQUEST---
has not init plugin
Unhandled promise rejection Error: has not init plugin
经过测试,1.1.26版本能正常使用,后续的版本就报如题的错误,尤其是官方文档指明让使用latest
版本,不让更改。
官方教程初始化:
miniShopPlugin.initApp(this, wx)
我是使用的uni-app,在初始化插件的时候传入的参数this
可能有问题。
打印后this是vue,肯定this的问题了,怎么获取小程序环境呢,有个方法是
getApp()
于是改成
miniShopPlugin.initApp(getApp(), wx)
还是报错,打印 getApp()
居然是undefined
.
查找之后,才知道App.vue中拿不到 getApp()
,需要用 this.$scope
代替。
替换,运行
miniShopPlugin.initApp(this.$scope, wx)
问题解决了。
新版本插件初始化的时候需要保证这里this是小程序app的this
,如果你使用了一些小程序框架
,此时拿到的this
很可能是经过框架封装的,从而导致初始化失败,建议自行打印出当前this看下,取出正确的this进行传入。