React-native scrollview onScroll调用函数以呈现更多元素

时间:2016-03-06 11:14:32

标签: javascript react-native infinite-scroll

所以我已经用infinite scroll实现了我自己的<ScrollView onScroll={}>类型的东西,并且在确定用户是否在屏幕中间滚动时遇到了麻烦。 handlescroll函数中的if语句有时会同时触发(取决于我中途滚动多少)如果我中途滚动。

有没有人做过与此类似的事情,如果你能帮我提供一些有关你如何实现它的见解。

这是我的滚动视图,它只包含许多帖子组件。

return (  
      <ScrollView key={"scrollview_1"} onScroll={this.handleScroll.bind(this)}>
        { postComponents }
      </ScrollView>
)


handleScroll (event: Object) {
    console.log(event.nativeEvent.contentOffset.y);
    const offset = event.nativeEvent.contentOffset.y;
    const screenHeight = Dimensions.get('window').height;

    const {FeedActions,} = this.props;
    const {nextUrl,} = feed;

    // Somehow figure out a way to check if past halfway only once 
    var x = (offset % screenHeight/2);
    if( x > 0 && x < 40){
      // Run API call get more posts, then render the new components
      FeedActions.getMorePosts(nextUrl, true);
    }

  }

我还发现如果他们中途滚动过去了只滚动0 (offset%screenheight/2)一点,我的FeedActions.getMorePosts函数将再次运行。为了解决这个问题,我正在考虑实现一个state,它将保存过去屏幕高度的数组。在我的if语句中,我将检查是否已经通过了我的状态数组中的任何屏幕高度。

0 个答案:

没有答案