收藏
回答

navigator组件快速多次点击会打开多个页面

问题模块
API和组件

代码如下:

<navigator url="/pages/doc/doc?docId={{selectedDoc.id}}">详情 ></navigator>

在调试工具上不会有问题,手机上如果快速点击,会多次打开页面,而且会放入页面栈里面

最后一次编辑于  2017-07-20  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

11 个回答

  • 晨
    2017-07-20

    这是个已知问题,我们还在讨论可行的方案解决。

    2017-07-20
    赞同
    回复
  • 宋鹏程
    宋鹏程
    2017-07-20

    希望尽早能解决,最好navigateTo这些路由函数也能防止重复调用。

    2017-07-20
    赞同
    回复
  • 宋鹏程
    宋鹏程
    2017-07-20

    不过微信总要解决这个问题,不然这个组件就废了,点击的反应大概在500毫秒,很多人都会去再点一下。

    2017-07-20
    赞同
    回复
  • 赵青山
    赵青山
    2017-07-20

    大神啊

    2017-07-20
    赞同
    回复
  • 宋鹏程
    宋鹏程
    2017-07-20

    但是那样如果有很多地方要跳转就要很多flag了,也可以参考undersocre里面的once函数。用高阶函数去处理响应函数会比较有通用性

    2017-07-20
    赞同
    回复
  • 赵青山
    赵青山
    2017-07-20

    我是用if(flag)判断wx.navigateTo是否执行,flag=false,然后wx.navigateTo 的complete函数里flag=true

    2017-07-20
    赞同
    回复
  • 宋鹏程
    宋鹏程
    2017-07-20

    在指定时间内函数如果触发多次只执行一次的处理,你可以搜一下js debounce. 但是这样就不能用navigator了,就只能自己bindtap处理跳转。

    2017-07-20
    赞同
    回复
  • 赵青山
    赵青山
    2017-07-20

    debounce是啥?不懂求教

    2017-07-20
    赞同
    回复
  • 宋鹏程
    宋鹏程
    2017-07-20

    自己加个debounce倒是可以解决,但是总不能所有bind的函数上都加一个吧。。。。

    2017-07-20
    赞同
    回复
  • NanBox
    NanBox
    2017-07-20

    微信本身也是这样,应该跟他们做行为分析有关

    2017-07-20
    赞同
    回复

正在加载...