choin
choin
  • 发布:2020-07-25 11:40
  • 更新:2021-06-12 20:33
  • 阅读:1662

【报Bug】nvue ,scroll-view的scroll-into-view只能滚动一次

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.7.14

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 红米note7

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

1

预期结果:

2

实际结果:

3

bug描述:

nvue ,scroll-view的scroll-into-view只能滚动一次
再次设置不能滚动了

【用了异步还有2级oldscrolltop json格式才解决- - 真是不明白这什么逻辑呀,】

2020-07-25 11:40 负责人:DCloud_App_Array 分享
已邀请:
choin

choin (作者)

scroll-top设置为0同样,也是就一次,点第二次没反应

何木木

何木木

这个咋解决的?
我用于聊天发送滚动到底部,单发现只有第一次可以,之后就没用了

  • choin (作者)

    没解决,不知道哪位大神解决了

    2020-12-13 22:05

shamshing

shamshing

通过试验发现scroll-into-view的值需要在变化之后才会滚动到相应的位置,如果第二次赋值于第一次相同,则没有反应,具体是BUG或者机制就是这样现在还不清楚

但可以通过把表达式放在setTimeout中,设置一个非常短的延迟再执行就行, 这样每次执行函数的时候其实就是发生了两次赋值,并且第一次赋值为无效值,代码如下

function scrollInto(){
this.scrollId = 'item'
setTimeout(()=>{
this.scrollId = 'item' + index
}, 100)
}

  • shamshing

    最优解在这,https://ask.dcloud.net.cn/article/37296

    思路一致,都是给scroll-into-view赋值2次,但这个楼主的$nextTick是最优解

    2021-06-13 15:01

luodada

luodada

自己翻问答贴,这问题18年谈到现在

该问题目前已经被锁定, 无法添加新回复