碰到一个问题
app.globalData的代码如下:
globalData: {
id:0,
}
当在A页面设置data为
data: {
id: app.globalData.id
},
在B页面给app.globalData.id赋值后跳转到A页面
app.globalData.id=100
wx.navigateTo({
url: 'A',
})
在A页面分别打印
onShow: function () {
console.log(app.globalData.id);
console.log(this.data.id);
},
输出结果为:
100
0
哪位大佬能告诉一下 原因么 万分感谢
你可以再A页面在生命周期中进行赋值
this.setData({ id:app.globalData.id })
若有帮助请帮忙点个"有用"谢谢↓↓
data只在页面初始化一次你跳转回来的时候页面上的数据没有重新初始化导致的
我试了一下
我小程序首页是 pages/index/index.js
页面 pages/test/index.js 有如下代码:
function test() { console.log('test'); return 3; } Page({ data: { testValue: test() }, });
小程序在启动首页时候(并没有导航到 pages/test/index.js),会log "test"。
猜测: 小程序启动时候将所有引用的 Component 和 Page 中的 data 一次性初始化并缓存了, 之后每次进入页面都是取的最开始那个初始化的缓存值。
骚操作。。。
我也有同样的问题,data里的值从globalData初始化不出来
感觉和路由有关系,切换到A时,A打开了原先的。https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html