收藏
回答

setInterval中setData的问题?

https://developers.weixin.qq.com/s/KjBFDemY7jfI

Page({
  data: {
    d: 60
  },
  kaishi: function () {
    var that = this
    this.interval1 = setInterval(function () {
      var a = that.data.d;
      a--;
      if (a <= 0) {
        clearInterval(that.interval1);
      }
      console.log(a)
      that.setData({
        d: a
      })
    }, 1000)
  }
})

页面A跳转到页面B,在B点击按钮后开始setinterval,上面是页面B的代码。当在倒计时的时候,返回页面A,然后再打开页面B,wxml中的内容没有重新渲染。完整的例子在代码片段中,大家帮忙看看怎么解决。

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

2 个回答

  • 攻城狮@射鸡屎
    攻城狮@射鸡屎
    2020-11-10

    页面销毁了,但是定时器是全局的不会跟随页面销毁,就是要你手动销毁

    2020-11-10
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2020-02-18

    你的代码我改了改 https://developers.weixin.qq.com/s/ywChuemA7pf9 没看懂你的问题是什么

    2020-02-18
    有用
    回复 2
    • | ⃢👁 👁⃢ |
      | ⃢👁 👁⃢ |
      2020-02-18
      我想要的效果是这样的,A跳到B,B必须点击按钮,WXML页面的数值开始倒数。在倒数的时候,返回A,再到B,倒数任然可以继续。但现在我的代码问题是,开始倒计时后,但会A,再到B,后台仍然在倒计时,但WXML页面的值不更新了。
      2020-02-18
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-18回复| ⃢👁 👁⃢ |
      因为B页面销毁了,所以不更新。把计时的代码写成组件,或者把变量写到globalData里,实现一个监听器
      2020-02-18
      回复
登录 后发表内容
问题标签