上格科技


定制网站建设,为你“量体”而制

解决直接访问小程序分包web化页面出现 'globalData' of undefined的问题

发表:2021-02-10 20:58:13 浏览数:编辑:

最近在做个小程序“筑家房产百科”,是给我们旗下上格筑家www.3j99.cn做的一个产品,可以是小程序web化的时候发现不对,从首页进小程序的话没有问题,可是给哪个内容页刷新一下页面就没有数据了,看了一下控制器,提示“Cannot read property 'globalData' of undefined”。下面咱们就看一下分钟的方法和解决'globalData' of undefined的方法

image.png

然后我找了一个页面找哪里用了这个globalData,

/packageA/pages/xf/xf 这里面用了

this.requestTask = new Promise((resolvereject=> {

            const requestHandler = swan.request({

                url: app.globalData.urlapi + 'content_get',

                header: {

                    'content-type': 'application/x-www-form-urlencoded'

                },

                method: 'POST',

                dataType: 'json',

                responseType: 'text',

                data: {

                    id: res.id

                },

                success: res => {

                    var result = JSON.parse(res.data.result);

                    // console.log(result)

所以也就是globalData是百度小程序的data,原来是我做了小程序的分包,直接从分包链接进行的时候,app.json的内容就没有加载过来。所以globalData没有数据,也就出现了整个页面没有数据。如果页面不引用app.globalData这个页面也是没有问题的。

引用app.globalData有个好处就是全局定义的东西可以引用。

所以我就解决了一下,解决如下

app.json的分包内容如下:

{

    "pages": [

        "pages/index/index",

        "pages/tabOne/tabOne",

        "pages/introduce/introduce",

        "pages/content/upload",

        "pages/z01-com/z01-com/z01-com",

        "pages/xfdt/xfdt",

        "pages/xfdt/xfdtitem/xfdtitem",

        "pages/goto/goto",

        "pages/z01-com/z01-com"

    ],

    "subPackages": [

        {

            "root""packageA/pages",

            "name""packageOne",

            "pages": [

                "xf/xf",

                "xf/xfitem/xfitem",

                "xf/dt/dtitem/dtitem",

                "xf/dt/dt",

                "esf/esf",

                "esf/esfitem/esfitem"

            ]


        },

        {

            "root""packageB/pages",

            "name""packageTwo",

            "pages": [

                "fcbaike/fcbaike",

                "news/news",

                "news/newsdetail/newsdetail",

                "fcbaike/fcbaikedetail/fcbaikedetail"

            ]


        }

    ],

    "window": {

        "navigationBarBackgroundColor""#198754",

        "navigationBarTextStyle""white",

        "navigationBarTitleText""智能小程序",

        "backgroundTextStyle""light"

    }

}

原页面的js头部为:

const app = getApp()

如果是用在主包或者是分包页面没有引用app.json是没有问题的,如果引用了,就需要把app.js加工一下

App({

    data: 123,//给这个主包命名

  globalData:{

        userInfo:null,

        imgUrl: 'https://www.3j99.cn/uploadFiles/',

        url:'https://www.3j99.cn',

        urlapi:'https://www.3j99.cn/API/BDAPP?apiId=SSY5UF6SUK&apiKey=sZ2Mx7BvAgEWr7i6JDh4vPLFluMuR4pn&action=',

        urllogin:''

    },

    onLaunch(options) {

    },

    onShow(options) {

        // do something when show

    },

    onHide() {

        // do something when hide

    }



});

data: 123,//给这个主包命名

然后在分包引用

const app = getApp({allowDefault: true});

app.data = getApp();


然后这样在随时访问分包都没有问题了。。

只有这样小程序的索引校验才会没有问题,不然就会出现页面加载不了,小程序页面索引被拒绝。


以上由优秀网站建设者山东上格信息科技整理发布,转发请保留出处


上一篇文章: 下一篇文章:没有了
    进一步意向对[解决直接访问小程序分包web化页面出现 'globalData' of undefined的问题]这条信息感兴趣吗?您可点此联系我们以确定进一步意向。

    分享

    联系官方服务热线 24小时移动专家在线