bug复现
app.js中定义全局变量
globalData: {
xtuserInfo: {
xt_id: ’
0’
},
}
tabBar有主页和次页2个页
主页中赋值
app.globalData.xtuserInfo.xt_id=‘10’
次页中不对app.globalData.xtuserInfo.xt_id进行操作
在一非tabBar页里定义
const app = getApp()
Page({
data: {
xtid=app.globalData.xtuserInfo.xt_id
}
重点来了
1、清空缓存(记得要先清空)
2、编译进入主页,console.log(app.globalData.xtuserInfo.xt_id) 显示 10
3、进入次页,wx.navigateTo 非tabBar页,console.log(app.globalData.xtuserInfo.xt_id) 显示 0
但是在主页中wx.navigateTo 非tabBar页,console.log(app.globalData.xtuserInfo.xt_id) 显示 10
4、不清空缓存,再编译进入主页console.log(app.globalData.xtuserInfo.xt_id) 显示 10
5、再次进入次页,wx.navigateTo 非tabBar页,console.log(app.globalData.xtuserInfo.xt_id) 显示 10
从新检查了一下,发现与wx.navigateTo无关,是页面page页面的初始数据data中定义的数据使用全局变量赋值得到的是app.js中该全局变量的初始值,而不是实际值
app.js中定义全局变量
globalData: {
xt_id: ‘0’,//协同id
}
主页面
主页中赋值
const app = getApp()
......
......
onLoad: function () {
app.globalData.xt_id='10'
}
【页面一】
const app = getApp()
data: {
xtid: app.globalData.xt_id
},
…
…
onLoad: function (options) {
console.log(“app.globalData.xt_id=”, app.globalData.xt_id)
console.log(“this.data.xtid=”, this.data.xtid)
},
console.log的结果是
app.globalData.xt_id=10
this.data.xtid=0
按道理this.data.xtid不应该等于10吗?