Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
BobbySir opened this issue May 21, 2019 · 5 comments

Comments

@BobbySir
Copy link

当数据不是第一页的时候,调用手动刷新数据后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才对。

@geek-prince
Copy link
Owner

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

@BobbySir
Copy link
Author

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)
}

@geek-prince
Copy link
Owner

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

@BobbySir
Copy link
Author

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

@geek-prince
Copy link
Owner

好的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants