react-native-page-listview icon indicating copy to clipboard operation
react-native-page-listview copied to clipboard

当数据不是第一页的时候,调用手动刷新数据后index=1, 当上拉数据时index还是之前的。

Open BobbySir opened this issue 5 years ago • 5 comments

当数据不是第一页的时候,调用手动刷新数据后index=1, 当下拉数据时index还是之前的index而不是2, 这个如何处理?

1: 逻辑是这样的,我当前数据列表是第5页,所以我的index是5. 2: 当我点击手动刷新数据的时候我的index恢复到了1, 但是我上拉刷新时候index又是从第5页开始了, 而不是2,所以上拉加载更多还是走的是原来的逻辑,记录的是没手动刷新之前的index。 3: 请问我要怎样才能将加载更多的index变为我手动调用刷新后,按照当前重置的index走。

当前index = 5, 加载更多是=5, 手动刷新index = 1, 加载更多=5, 应该是2才对。

BobbySir avatar May 21 '19 16:05 BobbySir

你说的是哪个index啊?我应该是只在renderItem方法里面传入index参数,页面的index都是组件内部维护的,没有传递到外部啊

geek-prince avatar May 22 '19 05:05 geek-prince

image 我后面看了代码,只能通过你提供的方法刷新了, 用我的那个方法加载更多的时候还是之前的page。

1:如下方案是刷新后,加载更多page还是之前的。 直接调用refresh=(callBack) 函数, 将callBack保存到 this.state 当中,刷新的时候直接调用refresh=(callBack)函数, 将this.state.callBack传入到refresh函数当中。 代码如下: constructor(props){ super(props); this.state ={ callBack: null, }

//处理"下拉刷新"或"一开始加载数据"的方法 refresh=(callBack)=>{ this.setState({callBack: callBack}); }

//点击调用的函数 clickRefresh(){ this.refresh(this.state.callBack) }

BobbySir avatar May 22 '19 09:05 BobbySir

看你的描述,可能是你从外部获取了一些组件内部自己维护的没有暴露的值,如果是这样的话可能会产生一些不可预知的问题.你的问题最后解决了吗?

geek-prince avatar May 22 '19 09:05 geek-prince

最后是调用你提供的手动刷新的方法解决的, 通过重新请求数据,将返回结果填入到res里面。唯一的遗憾就是不会触发下拉刷新动画。

BobbySir avatar May 22 '19 09:05 BobbySir

好的

geek-prince avatar May 22 '19 09:05 geek-prince