uni-app
uni-app copied to clipboard
fix: 【发行为混合分包】TypeError: t.$callHook is not a function
#4781
-
当发行为混合分包的时候,uniapp 会调用 initCreateSubpackageApp 方法
-
initCreateSubpackageApp 里调用 parseApp ,并在 onLaunch 时候进行 initBaseInstance
-
initCreateSubpackageApp 里调用 parseApp 后同步执行
vm.$.ctx.$scope = app;
-
initBaseInstance 在 onLaunch 会进行
if (this.$vm && ctx.$scope) {return;}
阻断,如果通过则执行ctx.$hasHook = hasHook; ctx.$callHook = callHook;
问题出在 onLaunch 是异步的,导致 4 的流程阻断,没有执行 $callHook 赋值,最终导致 initAppLifecycle
中的 vm.$callHook
为 undefined