uni-app nvue中绑定key后还是无法保留滚动条位置
uni-app nvue中绑定key后还是无法保留滚动条位置
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.1.22
手机系统:Android
手机系统版本号:Android 10
手机厂商:华为
手机机型:HONOR X10
页面类型:nvue
打包方式:云端
示例代码:
<view class='content'>
<scroll-view class="box" ref='box' :scroll-y="true" @scrolltoupper='onScrolltoupper'>
<view class="btn" v-for="(item,index) in lists" :key='item.id'>
{{item.name}}
</view>
</scroll-view>
<view class="btn" @tap='onAdd' style="background-color: #0071FF;margin-top: 100rpx;">
添加
</view>
</view>
export default{
data(){
return{
lists:[
{name:'这是个1',id:1},
{name:'这是个2',id:2},
{name:'这是个3',id:3},
{name:'这是个4',id:4},
{name:'这是个5',id:5},
{name:'这是个6',id:6},
{name:'这是个7',id:7},
{name:'这是个8',id:8},
{name:'这是个9',id:9},
{name:'这是个10',id:10}
],
num:0,
top:0
}
},
methods:{
onAdd(){
this.lists.unshift({
"name": "兔兔"+this.num,
"id":this.lists.length+1
});
this.num++;
console.log(this.lists)
},
}
}
.btn{
width: 750rpx;
height: 100rpx;
background: yellow;
margin-top: 20rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
font-weight: bold;
}
.content{
width: 750rpx;
height: 100vh;//nvue中改成flex: 1;
background-color: pink;
display: flex;
flex-direction: column;
}
.box{
width: 750rpx;
height: 800rpx;
background-color: blue;
}
.sec{
width: 750rpx;
height: 100%;
background-color: red;
}
操作步骤:
逐步复制以上代码,将滚动条滚之中间,点击添加按钮来添加数据。
预期结果:
保留滚动条位置,不会因为插入数据产生蠕动效果。
实际结果:
在安卓系统的vue文件中是有效的,列表并不会产生蠕动且保留滚动条原有位置,但是ios的vue,nvue,以及安卓的nvue文件都会蠕动,滚动条位置随着插入不断往下滚动。
bug描述:
使用vue中使用scroll-view组件,只要绑定key值,中途插入(unshift)数据,滚动条仍然会保留插入之前的位置,不会主动往下蠕动(ios中无效); 但是在Nvue中无论是IOS还是安卓都无效,插入数据会一直蠕动。
更多关于uni-app nvue中绑定key后还是无法保留滚动条位置的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复


