react-native-pullRefreshScrollView
react-native-pullRefreshScrollView copied to clipboard
加载更多数据时,如何不重新渲染从头开始展示数据,而是在最后一条数据后面添加更多新加载数据
作者您好! 我目前使用您的组件遇到了一个问题,想向您请教一下。 我在加载更多数据时,它都会重现渲染加载数据,并且从头开始进行显示,但是这显然不符合用户操作习惯,我想的是加载完新的数据之后,直接append在老数据之后,而不是从第一条数据进行显示。 谢谢您。
这个需要你自己控制数组,每次append时将原本的数组保留新增的元素concat进去新数组
@lvming6816077 感谢回复。
我每次加载数据之后会去把新加载出来的数据和老的数据进行concat。这一步是没有问题的。
然后将新生成的数据进行如下操作:
this.setState({ contentList:this.state.contentList.concat(responseData.resData.list) }); this.setState({ dataSource: this.state.dataSource.cloneWithRows(this.state.contentList) });
当我把获取到的完整数据放入dataSource之后,它都会去重新渲染一次页面,导致页面会从第一条数据进行显示,但是数据其实已经加载出来的了,只是会跳到最顶端开始显示。不知道我这样描述是否清楚。
于是我没有改变我其他的代码,只是将您的组件移除,使用RN官方的上拉加载,数据会正常的拼接到老数据之后,而不会重新渲染页面。 我咨询了RN中文网的晴明老师, 他的猜测可能是您的组件破坏了listview的渲染,所以导致了数据无法正常的去添加。(当然这仅仅是猜测,不知道您是否有遇到过类似的问题)

调用PullRefresh.onRefreshEnd()函数会将ScrollView滚动到顶部,有可能你是加载更多和下拉刷新获取数据后都会调用这个函数