dkvirus / py-novel

看小说。服务端:【Python+Flask+Mariadb】、【Node+Express+Mariadb】;客户端:【Vue+iview】、【微信小程序】、【Android原生开发(Java)】、【Flutter+Dio】、【Taro+Typescript】
MIT License
129 stars 50 forks source link

Taro ScrollView 组件的 scrollTop 属性是个坑 #34

Closed dkvirus closed 5 years ago

dkvirus commented 5 years ago

官方issue:ScrollView设置scrollTop没效果

同样的,设置 scrollTop=0 并不能实现置顶,官方回复早就修复了,我的 Taro 版本已经是最新的,然而并未修复。

万能的评论区,给出了失效的原因。源码里设置 scrollTop 值不变时,即便设置 scrollTop=0 也不会起作用。

image

怎么让 scrollTop 变?第一个想到的监听滚动事件 onScroll,实际操作发现,onScroll 过程中 this.setState({ scrollTop: e.detail.scrollTop }),会导致滚动及其的卡顿。

最后使用随机数解决的,每次置顶不是设置 scrollTop=0,而是设置 scrollTop=Math.random(),因为随机数取值范围在 [0,1) 之间,可以伪装成置顶。