Better-scroll插件初始化之后不能滚动,刷新之后又可以滚动

问题:
在使用cube-scroll(封装better-scroll)作为vue移动端项目的滚动插件,出现了如下问题,初始化之后不能滚动,刷新之后又可以滚动。

目前暂时解决方案:
我在请求数据完成的回调函数中,添加了如下代码,
%E5%9B%BE%E7%89%87

使用setTimeout始终不是好的解决方案,各位大佬有另外的方案吗?

有人遇到过同样的问题么

这是之前写的关于better-scroll的组件或许可以帮助到你https://github.com/zjfcool/vue-music/blob/master/src/base/scroll.vue如果你写的组件跟这差不多,八成是样式的问题,看情形应该是没有监听data变化的时候去再次refresh。

其实问题的核心就是:
数据在渲染之前,就已经初始化完组件。

理想的逻辑是:
数据获取完毕。
dom结点渲染完毕。
初始化/更新组件。

但总是不能达到这个效果。

获取 你在获取数据是 使用 async 或是 promise 做一次异步 调用初始化

跟这没关系,你数据如果是一直变的呢?
解决思路应该是这样:
当数据变动的时候去重新refresh,激活better-scroll,重新计算滚动距离。
类似这种:
watch:{
data(){
setTimeout(()=>{
this.refresh();
},this.refreshDelay)
}
}

1 Like

滚动组件 你要考虑用户触发滚动了, 在去调用方法,

我不知道你的滚动组件是怎么做的,
但是所有的类似list组件基本都是大同小异,
监听用户scroll 滚动,在去做一些操作,获取或是更新数据

请问您所描述的问题解决了么?我也遇到同样的问题

监测到了数据但是初始化之后不能滑动,刷新之后就可以。