收藏
回答

关于小程序全局变量的使用有个问题?

一个登录的操作,想修改本地的用户组,用户组信息是在app.js里面写的,默认值为0。

然后点击查询当前用户组,可以正常显示0。下方监测页面,有一项amount显示为0。

在登录过程中,如果成功了,会把usergroupthis赋值给app.globalData.usergroup,应该是2。

然后再返回首页,查询当前用户组之后,只能显示amount的页面默认值-1,甚至在监测页面都没有amount这一项了。

想问一下这是怎么回事,怎么解决?

回答关注问题邀请回答
收藏

2 个回答

  • Admin ²º²³
    Admin ²º²³
    2020-02-15
    下面的少了data(比如this.userpwdget应为this.data.userpwdget),另外有几个地方应该用that代替this
    if (this.userpwdget == this.userpwdinput)
          {
            console.log('密码正确')
            app.globalData.usergroup = this.usergroupthis
            //wx.redirectTo({
            //  url: '../index/index',
            //})
          }
    
    2020-02-15
    有用 2
    回复 2
    • sunflower
      sunflower
      2020-02-15
      想问一下怎么区分应该使用that和this的不同情况啊
      2020-02-15
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-02-15回复sunflower
      普通情况下this代表当前实例,但是很多方法是有回调的,回调的方法里的this代表回调方,这个时候就有2个this变量了,重复并冲突了,解决这个问题就引入了that变量。所以你要在回调前把var that=this;把当前页面实例保存到that里面,当要使用时就用that,这样就不冲突了
      2020-02-15
      1
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-02-15

    你页面是不是这么写的?

    2020-02-15
    有用 1
    回复 6
    • sunflower
      sunflower
      2020-02-15
      我是这么写的
      2020-02-15
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-15回复sunflower
      如何复现这种问题,提供一下可以复现的问题的代码片段吧
      2020-02-15
      回复
    • sunflower
      sunflower
      2020-02-15回复Mr.Zhao
      代码已经贴出来了
      2020-02-15
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-15回复sunflower
      https://developers.weixin.qq.com/s/7Xi4m9m87rfd   在这个代码片段的基础上改改,别加数据库操作,我没有你那个集合数据,模拟一下请求就行了,数据都写死
      2020-02-15
      回复
    • sunflower
      sunflower
      2020-02-15回复Mr.Zhao
      我去试试看,先感谢了
      2020-02-15
      回复
    查看更多(1)
登录 后发表内容
问题标签