在使用ScrollView做滑动分页加载数据时,scrollTop总会从0开始,即使设置scrollTop也没效果



同样的问题
当ScrollView中的元素是写死的时候,是正常的;但当ScrollView中的元素为异步的,如依赖后端的接口动态生成时,就不起作用了
明白了,我这边复现一下
@jinjinjin0731 @luckyadam ScrollView Bug解决了吗?
@huangguozhen 升级到最新版本试一下,这个忘记关了,已经修复
为什么我设置 scrollTop 还是没作用啊?这个修好了吗?
我是 1.1.9 版的
scrollIntoView 也没有作用……
这是我的代码
render() {
let { orders, height } = this.state;
if (!height) return null;
return (
<ScrollView scrollY scrollIntoView='order-1543483461928a778' className='order-list' style={`height: ${height}`}>
{_.isEmpty(orders) ?
<View className='app-empty'>
<Image src='https://static.fashionipo.com/conuni/no-order.png' />
<Text>您还没有订单哦</Text>
</View> :
orders.map(order => (<View key={order.orderId} id={`order-${order.orderId}`}>
<OrderCard order={order} />
</View>))
}
</ScrollView>
)
}
h5 使用 scrollTop={100} 没用
version1.2.4 scrollview 置顶没有效果~ wx小程序
setScrollTop(top){
this.setState({
scrollTop: 0
})
}
<ScrollView className={`elements-page__scroll`} scroll-top={this.state.scrollTop} scroll-with-animation="true"`>
</ScrollView>
这个问题修复了吗?1.2.4版本。
这个问题修复了吗?1.2.4版本。
貌似还没,我现在是用scroll-into-view实现,希望开发人员有空跟进下设置scrolltop的问题,
@Amywang1205 @AwesomeDevin 问题已经修复很久了。如果你们还有什么新的问题 ,你们可以提一下issue ,把复现的相关的逻辑贴一下。
至于 @AwesomeDevin 你的问题,你可以先看一下文档 属性名称始终使用驼峰命名法
@Amywang1205 @AwesomeDevin 问题已经修复很久了。如果你们还有什么新的问题 ,你们可以提一下issue ,把复现的相关的逻辑贴一下。
至于 @AwesomeDevin 你的问题,你可以先看一下文档 属性名称始终使用驼峰命名法
你好,之前使用驼峰法命名也是不行的,刚刚再次尝试了,还是不行,发现需要在滚动时给scrolltopvalue赋值,才能setscrolltop成功,但是滚动时赋值scrolltopvalue,如果激活了scrollWithAnimation属性,会造成滚动时页面卡顿,体验很不好,如果不激活scrollWithAnimation,可以正常使用
scroll(...data){
const scrollTop = data[1].detail.scrollTop
this.setState({ // 少了这一句无法置顶成功 并且激活scrollWithAnimation属性后,页面滚动会卡顿
scrollTopValue:scrollTop
})
this.props.onScroll(scrollTop)
// App.setScrollTop = ()=>{
// this.props.onScroll(0)
// this.props.setIntoView('scrollintoview')
// setTimeout(()=>{
// this.props.setIntoView('')
// },400)
// }
App.setScrollTop = ()=>{
this.setState({
scrollTopValue:0
})
}
// console.log(scrollTop)
}
<ScrollView scrollWithAnimation="true" scrollTop={this.state.scrollTopValue} className={`elements-page__scroll`} scrollIntoView={this.props.root.scrollntoView} scrollWithAnimation="false" upperThreshold="-100" ontouchend={this.touchend.bind(this)} ontouchmove={this.move.bind(this)} ontouchstart={this.touchstart.bind(this)} scrollY enableBackToTop onscroll={this.scroll.bind(this)} onscrolltolower={this.scrollDown.bind(this)} style={`padding-top:${this.props.pageConfig.fixed?0:this.state.height}px;${this.props.pageConfig.contentBgColor? 'background:'+this.props.pageConfig.contentBgColor+';':''}`} >
</ScrollView>
@Amywang1205 新开一个issue 吧,问题,复现代码 ,H5 or 小程序
哈哈哈哈哈,我知道大家为什么设置scrollTop置顶无效了,ScrollView(1.2.4版本)源码如下:

如果一开始设置的scrollTop是0,点击某个可以改变scrollTop为0.0001,新值旧值不一致才会触发他的向上滚动函数呀23333333
我用随机数解决了这个问题
这么坑啊...还需要自己写随机值..还有这个height高度还要自己去算里面内容..也是醉了
我用随机数解决了这个问题
随机数可以解决,就感觉代码很不优雅。
Most helpful comment
哈哈哈哈哈,我知道大家为什么设置scrollTop置顶无效了,ScrollView(1.2.4版本)源码如下:

如果一开始设置的scrollTop是0,点击某个可以改变scrollTop为0.0001,新值旧值不一致才会触发他的向上滚动函数呀23333333