html52.com
我爱小程序-开发者交流社区

全局变量+wx.navigateTo的 bug

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 1.02.1804090

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



网友回复

You can you up:

data初始化要早于onLoad,既然app.globalData.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吗?

You can you up:

没复现你说的问题,楼主发个代码片段  看看哪不一样

韬々:

麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付