react-native-page-listview
react-native-page-listview copied to clipboard
当数据不是第一页的时候,调用手动刷新数据后index=1, 当上拉数据时index还是之前的。
当数据不是第一页的时候,调用手动刷新数据后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才对。
你说的是哪个index啊?我应该是只在renderItem方法里面传入index参数,页面的index都是组件内部维护的,没有传递到外部啊
我后面看了代码,只能通过你提供的方法刷新了, 用我的那个方法加载更多的时候还是之前的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) }
看你的描述,可能是你从外部获取了一些组件内部自己维护的没有暴露的值,如果是这样的话可能会产生一些不可预知的问题.你的问题最后解决了吗?
最后是调用你提供的手动刷新的方法解决的, 通过重新请求数据,将返回结果填入到res里面。唯一的遗憾就是不会触发下拉刷新动画。
好的