Z这是啥呀 2023-02-16 10:24 采纳率: 25%
浏览 20

微信小程序 ,主包页面进入分包页面 ,主包的getApp里面的东西直接被清掉了,只剩几个生命周期函数

在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; // 获取全局方法
      },
      // 分包页面的逻辑代码
    })
    
    
    

    通过以上两种方法,可以在分包页面中使用主包中定义的全局数据和方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月16日

悬赏问题

  • ¥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账号下单提示拒绝操作