收藏
回答

为什么拓展组件tabs在上拉加载更多数据后滚动条会回到顶部?

最近做项目 , 有一个左右滑动切换的需求 ,用了微信拓展组件tabs , 但是在用scroll-view做上拉加载更多数据这个功能的时候 , 发现只要加载出新的数据,scroll-view就会自动回到最顶部 , 后来发现可能是setData的时候导致页面重置, 于是去网上搜索到了一种局部刷新的方法 ,发现也不行 ,这里附上代码片段 ,我这里只用setData更新了第一行数据 ,也导致scrollview滚到了最顶部

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


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

4 个回答

  • 卢霄霄
    卢霄霄
    2020-05-13

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

    2020-05-13
    有用 3
    回复 3
    • Charlotte
      Charlotte
      2020-05-13
      感谢回复,这也是我现在的做法 ,我把pageNum,title,和要渲染到视图上的内容分离了出来,看来确实只有这样做才行
      2020-05-13
      回复
    • 卢霄霄
      卢霄霄
      2020-05-13回复Charlotte
      单独页面写完没问题 跨组件了 就会被整个重新渲染。。我觉得应该算是bug。不过分开写也挺好~
      2020-05-13
      回复
    • 🍉糖大敬🌸
      🍉糖大敬🌸
      05-13
      我试了好几种办法,目前确实只有分离开才能解决问题。而且感觉与下面tabconent无关内容也要最好不要放进去。
      05-13
      回复
  • 同步
    同步
    03-05

    <mp-tabs tabs="{{tabs}}" 

    尝试过,tabs 里面的值如果上拉加载的时候,重新更新数值,我也遇到跟会导致滚动条自动回到顶部的情况。

    解决方法是上拉加载的时候不改变 tabs 里面的值,显示内容可以通过其他 变量进行定义传参。


            // sObj[`tabs[${activeTab}].num`] = count;   //这样写会导致页面滑动到底部上拉又重新回到顶部

                      sObj[`tabsOther[${activeTab}]`= count; 


    03-05
    有用
    回复
  • 厂危,速归。
    厂危,速归。
    2020-05-13

    我也是醉了 这个哪里来的??难道不是this.data.tabs ???

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

    2020-05-13
    有用
    回复 2
    • Charlotte
      Charlotte
      2020-05-13
      感谢回复 ,看来犯了低级错误
      2020-05-13
      回复
    • Charlotte
      Charlotte
      2020-05-13
      我刚刚看了一下 , 写成this.data.tabs虽然确实没有回到顶部了..但是我的视图改变并没有更新呢
      2020-05-13
      回复
  • 自我催眠
    自我催眠
    2020-05-12

    你的写法没看懂,不过你是不是忘了这个步骤,数据合并了

    var arry = that.data.arry;

    arry = arry.concat(arryBack);

    that.setData({

     arry: arry

    });

    2020-05-12
    有用
    回复
登录 后发表内容
问题标签