收藏
回答

页面切换后再切换回来到时setTimeout里的setDatabu不执行?

A页面里启动了定时器setTimeout, 返回带B页面, 然后再进入A页面, A页面里的setTimeout执行有问题, 可以正常给globalData赋值, 但是setData不执行

(和这个图片说的类似)

()

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

5 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-17

    启动定时器,返回,定时器所在页面已经不在页面栈里了,在重新点to book page已经是新的页面

    2019-12-17
    有用 2
    回复 2
  • 黯伢zz
    黯伢zz
    2019-12-17

    你返回的到B页面,A页面就销毁了啊,当然setData不会生效,而globalData是全局的肯定是能赋值到的,所以可以onUnload的时候放到globalData中,进来的时候再setData。

    2019-12-17
    有用 1
    回复 2
    • 城南花已开
      城南花已开
      2019-12-17
      因为需求是定时器结束时页面的按钮恢复点击而不是重新进入页面的时候恢复, 所以setData只能放在setTimeout里。 谢谢了🙏
      2019-12-17
      回复
    • 黯伢zz
      黯伢zz
      2019-12-17回复城南花已开
      试试把函数放在app中,每次进来根据app.globalData.lock判断。
      2019-12-17
      回复
  • 卢霄霄
    卢霄霄
    2019-12-17

    能提供一个代码片段吗

    2019-12-17
    有用 1
    回复 5
    • 城南花已开
      城南花已开
      2019-12-17
      https://developers.weixin.qq.com/s/fd3v6Gmn7Rdv
      2019-12-17
      回复
    • 卢霄霄
      卢霄霄
      2019-12-17回复城南花已开
      楼上说的对哦,A页面返回之后,虽然页面实例还在,但是重新进A页面已经不是原来那个A页面了。你可以每次进入页面的时候,在onLoad里打印下this,__wxWebviewId__是改变了的
      2019-12-17
      回复
    • 城南花已开
      城南花已开
      2019-12-17
      第一次进入后(__wxWebviewId__: id1)启动定时, 返回上一页再进入(__wxWebviewId__: id2)定时器时间到了执行的setData的this(__wxWebviewId__: id3), 发现id1和id3yi一样 也就是说定时器里的this还是上一次的实例, 所以应该就不会再新的实例里显示了, 不知道是不是这样
      2019-12-17
      回复
    • 卢霄霄
      卢霄霄
      2019-12-17回复城南花已开
      对 就是这个意思
      2019-12-17
      回复
    • 卢霄霄
      卢霄霄
      2019-12-17回复城南花已开
      wow。。。这清奇的写法。。。
      2019-12-17
      回复
  • 城南花已开
    城南花已开
    2019-12-17

    感谢各位了 , 解决办法如下

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

    2019-12-17
    有用
    回复
  • 铭锋科技
    铭锋科技
    2019-12-17

    没代码不说话

    2019-12-17
    有用
    回复 4
登录 后发表内容
问题标签