收藏
回答

onshow的时候自动触发了onReachBottm

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onReachBottm 客户端 6.7.3 2.4.0

- 当前 Bug 的表现(可附上截图)

首页获取列表是在onshow里面,上拉刷新到第四页,然后点下面tabbar别的页面,然后再点首页,会请求前两页数据,一次是onshow里面的,一次是onreachbottom里面的

- 预期表现

只执行onshow里面的事件,也就是只请求一次数据

- 复现路径


- 提供一个最简复现 Demo


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

4 个回答

  • 趔趄上岸的少年
    趔趄上岸的少年
    2022-09-29

    问题:当已经触发onReachBottom事件离开页面再回来后,onshow()滚动位置并未发生变化,而且onReachBottom被触发多次执行,导致页面仿佛没有变化,而且页数也不对,导致数据错乱。

    解决思路:在onshow中,滚动到顶部,页面回到顶部也许可以避免触发onReachBottom,测试发现真的有用

    解决方法:

    uni.pageScrollTo({

    scrollTop:0,   // 滚动到页面的目标位置  这个是滚动到顶部, 0 

    duration:200  // 滚动动画的时长

    })

    2022-09-29
    有用
    回复 1
    • Somniloquy
      Somniloquy
      2022-10-17
      试过了 完美解决 感谢
      2022-10-17
      回复
  • 还有一只特别胖的兔纸
    还有一只特别胖的兔纸
    2020-04-27

    我也遇到了,点下bar切换时候,数据会错乱,我方法写在onshow和onReachBottom

    里面,

    2020-04-27
    有用
    回复
  • 甜蜜蜜
    甜蜜蜜
    2018-11-20

    亲,就是有个公共的函数(请求接口获取列表的函数),然后在onshow里面调用了一次,在onreachbottom里面调用了一次,现在的问提示我上拉刷新,刷新到比方说是第五页,然后点别的页面,然后再到这个页面,他不会到上次浏览的位置,只会加载到第二页底部那个位置,这个好奇怪

    2018-11-20
    有用
    回复
  • 是小白啊
    是小白啊
    2018-11-20

    提供下代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2018-11-20
    有用
    回复 8
    • 甜蜜蜜
      甜蜜蜜
      2018-11-20

      亲,就是有个公共的函数(请求接口获取列表的函数),然后在onshow里面调用了一次,在onreachbottom里面调用了一次,现在的问提示我上拉刷新,刷新到比方说是第五页,然后点别的页面,然后再到这个页面,他不会到上次浏览的位置,只会加载到第二页底部那个位置,这个好奇怪

      2018-11-20
      回复
    • 是小白啊
      是小白啊
      2018-11-20回复甜蜜蜜

      亲,所以想要个复现的代码片段看一下啊

      2018-11-20
      回复
    • 甜蜜蜜
      甜蜜蜜
      2018-11-20回复是小白啊

      就是上次看到第五页,然后跳到别的页面,再回来的的时候,执行onshow,会回到原来位置吗,onshow提供这种功能吗

      2018-11-20
      回复
    • 是小白啊
      是小白啊
      2018-11-20回复甜蜜蜜

      你可以尝试下onshow的时候不请求函数的试试?看会复现吗?

      2018-11-20
      回复
    • 甜蜜蜜
      甜蜜蜜
      2018-11-20回复是小白啊

      写onload里面不会发生这种情况,但是因为数据会变,所以产品要求页面要刷新,是不是onshow不支持

      2018-11-20
      回复
    查看更多(3)
登录 后发表内容