在App函数加载的时候放了几个方法和全局数据,但是只要我是第一次进入小程序,
2条回答 默认 最新
- 量化研究所 2023-02-16 10:30关注
在主包页面中调用getApp()获取到的是小程序的全局实例,而在分包页面中获取到的是分包的实例,因此在分包页面中无法直接访问主包中定义的全局数据和方法。
解决方案:
在分包页面中使用wx.require()方法加载主包中的js文件,从而获取到主包中定义的全局数据和方法。
// 分包页面中的代码 const app = getApp(); // 获取分包实例 const mainApp = wx.require('/app.js'); // 加载主包的app.js文件 const globalData = mainApp.globalData; // 获取主包中定义的全局数据 const method = mainApp.method; // 获取主包中定义的全局方法 Page({ // 分包页面的逻辑代码 })
在主包的app.js中定义一个方法,用来将需要在分包中使用的数据和方法挂载到小程序实例上,然后在分包页面中直接调用挂载到小程序实例上的数据和方法。
// 主包app.js中的代码 App({ onLaunch: function () { // 将需要在分包中使用的数据和方法挂载到小程序实例上 this.globalData = { // 全局数据 }; this.method = function () { // 全局方法 }; } }) // 分包页面中的代码 const app = getApp(); // 获取分包实例 Page({ onLoad: function () { const globalData = app.globalData; // 获取全局数据 const method = app.method; // 获取全局方法 }, // 分包页面的逻辑代码 })
通过以上两种方法,可以在分包页面中使用主包中定义的全局数据和方法。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 图像采集的信号展开问题
- ¥100 uniapp移动app使用nvue页面中recycle-list组件写聊天列表,反复出现闪退问题
- ¥15 Android 在越南手机上 获取短信会有部分乱码是为什么
- ¥15 Flutter sdk 更新到3.24.0后运行flutter run --release 报错
- ¥15 装win10系统自带的锐炫控制面板可以删除吗,里面有虚拟摄像头, 人脸识别会造成干扰
- ¥15 模块化生产的路径规划哪种算法更合适?
- ¥15 如何在animate html5文档任意位置实现文本输入功能?
- ¥15 电机正反转电路设计中,mos管的关断问题,求原因。
- ¥15 关于#sql#的问题:怎么找出所有同时多张有效保单的车架号
- ¥15 KFC账号下单提示拒绝操作