刷新时将本机SectionList滚动到顶部

时间:2019-01-31 04:44:26

标签: javascript reactjs react-native react-native-ios react-native-sectionlist

我正在使用SectionList来显示数据列表。我有一个顶层菜单,用户可以单击这些按钮在列表上显示一组不同的数据,就像标签一样。所有这些都工作正常,正在显示正确的数据,并且刷新正确。

但是问题是,当用户在列表上向下滚动(例如,中途滚动)然后单击顶部的按钮之一时,列表不再显示refreshing动画(旋转的圆圈)。我已经正确实现了refreshing属性,并且只要我下拉刷新就可以使用。

此外,如果您滚动到列表的顶部,然后单击刷新图标也会按预期显示的按钮之一。问题在于,只要您向下滚动列表,然后设置refreshing属性,列表就不会显示图标。

<SectionList
refreshing={this.state.isFetching}
onRefresh={() => this.onRefreshList()}
....
...
/>

然后每当我打电话开始更新数据时...

this.setState({ isFetching: true }, function() {
....
....
//all code in here works fine the list shows activity monitor no problems
//when you scroll down on the list THEN 
//call this the activity monitor can't be seen on the list
});

因此,为了解决这个问题,我在调用实际刷新之前尝试自动scroll to the top。这的还挺的作品,但它看起来非常糟糕。没有回调,所以我不知道列表何时滚动到顶部。

//this also works properly and scrolls the list to the top but
//it's really jumpy and looks terrible because the data is immediately 
//replaced while it's scrolling to the top, the loading animation can't be seen.

 this.sectionListRef.scrollToLocation({
      animated: true,
      sectionIndex: 0,
      itemIndex: 0,
      viewPosition: 0
    });

这是一个已知问题吗?有任何解决方法,还是我在这里做错了什么?

0 个答案:

没有答案