分包下的componentWillPreload第一次进入不触发
-
问题描述
两个分包下,从当前页面跳转到另一分包的页面的时候,url里面带参数使用componentWillPreload在跳转页面监听第一次没有触发,第二次进入才触发。
复现步骤
// 跳转到另一分包的页面 Taro.navigateTo({ url: `/pages_subs/circle/my_card/index?id=${id}` }) // 监听url传参 componentWillPreload (params) { console.log(params) return this.getInfo(params.id) }
期望行为
第一次进入就打印
系统信息
无
补充信息
因为第一次进入没有加载要跳转的分包的页面,所以第一次监听不到。
第一个尝试先打开要跳转的那个页面,然后再上面代码跳转,就可以打印了。
第二个尝试在同一分包里面进行跳转,能打印。
所以猜测是所属不同分包,第一次进入没有加载导致不能打印的原因。Chen-jj 回复:
你在补充信息里也提到了,初次跳转到分包页面,分包代码都没下载下来,肯定不能调用分包页面里的方法。
分包页面的预加载可以尝试使用 $preload
回复:
$preload可行,那也就是说componentWillPreload这个使用的范围就是在同一分包里面,而不算是bug了?
Chen-jj 回复:
componentWillPreload 写在子包页面里面,子包代码没有下载,父页面如何调用呢?
回复:
明白了,感谢! @Chen-jj