收藏
回答

全局变量在一个页面赋值,另外一个页面变量值没变化?

求救:在app.js 里声明了全局变量isHost = false,在Login页里修改了isHost = true,在index页里isHost 没有同步变为true。

全局变量不是任何地方修改了全局都能取到修改后的值吗?为什么在这个页面里修改了全局变量的值,其他页面该变量的值没有改变呢?


附代码片段:https://developers.weixin.qq.com/s/BlUjjams7gbH


最后一次编辑于  09-06
回答关注问题邀请回答
收藏

2 个回答

  • L°
    09-06

    存缓存里吧

    09-06
    赞同
    回复 5
    • low B
      low B
      09-06
      放在页面 Page({})里?
      09-06
      回复
    • L°
      09-06回复low B
      storage
      09-06
      回复
    • low B
      low B
      09-06
      汉,刚接触,还不清楚怎么搞。能不能帮我看下代码片段呢?
      09-06
      回复
    • L°
      09-06回复low B
      上面有人看了你的代码片段回复你啦 试试他说的方法
      09-06
      回复
    • low B
      low B
      09-06
      就是这个问题,感谢感谢
      09-06
      回复
  • 思男
    思男
    09-06

    会变,但是不会重新渲染页面。

    比如你是从index里用navigateto跳转到login

    然后在login里改变了isHost,这时候点击返回

    到index页面的时候,它并没有重新渲染

    所以需要你手动更新一下页面信息重新获取app.js里的变量

    09-06
    赞同
    回复 9
    • low B
      low B
      09-06
      怎么手动更新呢?抱歉,刚接触小程序
      09-06
      回复
    • Allen
      Allen
      09-06回复low B
      页面onShow生命周期重新取值 setData
      09-06
      回复
    • low B
      low B
      09-06
      我在 index 页面的 onShow: function() 里重新赋值,加了这条代码:isHost = app.globalData.isHost;但isHost 的值还是没改变哪
      09-06
      回复
    • 思男
      思男
      09-06回复low B
      如果isHost牵扯到页面渲染了,就不能直接用‘=’需要用setData
      09-06
      回复
    • low B
      low B
      09-06
      刚加了这条代码: this.setData({ isHost: app.globalData.isHost}),还是没变呢
      09-06
      回复
    查看更多(4)
问题标签