收藏
回答

小程序返回上级页面后再次进入该页面,定义的全局变量未被重置

如题,A页面跳转到B页面后,B页面在page上面定义了全局的变量,从B页面返回上级页面A后,再次进入B页面,会保留上次B页面全局变量更改后的数据,而不是重新初始化数据,例如在page上面定义了var num=0;onload函数里面,输出num后,num+=1;再次输出num,第一次输出的是0,1,返回A页面后再次进入B页面会输出1,2.这导致每次都要在page内部再次手动重置数据才行,否贼返回再次进入会一直这样保存上次的数据,这是bug还是原本就是这样设置的机制,希望有好心人帮忙解惑下,谢谢了~(这是个很容易复现的现象,就不贴图了,大家可以试下)

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

3 个回答

  • A_哈利路亚
    A_哈利路亚
    2019-06-27

    老铁,最后怎么搞得呢,我这也遇到了

    2019-06-27
    有用
    回复
  • 卢霄霄
    卢霄霄
    2019-01-12

    page外部的变量,在小程序初始化的时候就加载了,并且中途不会变的。。你可以试试,在非首页的页面的page外console.log一下,你会发现,根本没进的页面,也console出来了。如果需要销毁,可以写在page里,比如

    Page({

        data:{},

        name: "卢霄霄"

    })

    2019-01-12
    有用
    回复 5
    • 简单life
      简单life
      2019-03-19

      突然发现自己一直都存在这个问题,在JS的顶部命名了许多的变量,然后页面关闭重新进入之后数值没有再次初始化,只能在onload里面重新初始化一遍,这样代码不仅冗杂,也不美观,而且在忘记了在onload里面重新初始化之后,还容易引起bug

      问一下大神,你这边是怎么处理这种情况的

      2019-03-19
      回复
    • 卢霄霄
      卢霄霄
      2019-03-19回复简单life

      不放外面啊。。就放Page里,就和上面那个 name属性一样

      2019-03-19
      回复
    • 简单life
      简单life
      2019-03-19回复卢霄霄


      这个意思吗,科室为什么我console打印的时候是undefined



      2019-03-19
      回复
    • 卢霄霄
      卢霄霄
      2019-03-19回复简单life

      啊哈 要 this.name 这么用啊。。不过这个和在onLoad里定义差不多

      2019-03-19
      回复
    • 简单life
      简单life
      2019-03-19回复卢霄霄

      额,秀逗了...尴尬


      2019-03-19
      回复
  • 灵芝
    灵芝
    2019-01-11

    看看是否跟这个问题一致?新版7.0微信!!获取不到全局数据问题
    https://developers.weixin.qq.com/community/develop/doc/0006621d43cd785f06e7c888051400

    2019-01-11
    有用
    回复 1
    • 2019-01-14

      模拟器上好的,真机上就不会初始化数据,这样很多动画都没法执行

      2019-01-14
      回复
登录 后发表内容