收藏
回答

关于setData的问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug setInterval,setData 客户端 7.0 1.5.4


当在某个页面中的onload中使用setInterval,在setInterval中调用setData保存数据(整数),设定app.globalData.data4的值每次加一,结果第一次关闭页面后打开app.globalData.data4显示的值每次加二,第二次加三,第三次加四以此类推,我设定它应该是恒定加一不变的,不知道是setData刷新不及时还是setInterval的问题,求助各位大佬

代码如下:

data: {

small: 0,//app.globalData.data4,//进度初始值

middle: 0,

large: 0

},

onLoad: function (options) {

this.setData({

small: app.globalData.data4

})

this.timer = setInterval(() => {

app.globalData.data4++;

this.setData({

small: app.globalData.data4

})

}, 3000)

}


最后一次编辑于  2019-03-10
回答关注问题邀请回答
收藏

1 个回答

  • 黎😄
    黎😄
    2019-03-10

    在unload那里,clearInterval(this.timer);把定时器清理掉。你只是开了太多定时器了

    2019-03-10
    有用 1
    回复 11
    • HeisiuYoung
      HeisiuYoung
      2019-03-11

      前辈,我只是开了一个定时器为什么也会出现这样的结果?

      2019-03-11
      回复
    • 黎😄
      黎😄
      2019-03-11回复HeisiuYoung

      因为你的页面一开,就会开一个定时器,然后关闭页面的时候,定时器并不会关掉。所以,在你页面开了关掉再开就会有两个定时器在运行。

      2019-03-11
      回复
    • HeisiuYoung
      HeisiuYoung
      2019-03-11回复黎😄

      噢噢原来是这样,那请问如果我要一个定时器在程序运行期间一直运行需要如何操作?

      2019-03-11
      回复
    • 黎😄
      黎😄
      2019-03-11回复HeisiuYoung

      就是你写的那样咯。

      2019-03-11
      回复
    • HeisiuYoung
      HeisiuYoung
      2019-03-11回复黎😄

      这就尴尬了,我的页面上的数据跳着更新,不知道是我的问题还是setData本身的问题

      2019-03-11
      回复
    查看更多(6)
登录 后发表内容