请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

SectionList怎么实现下拉刷新上拉加载

<SectionList
   renderSectionHeader={this._renderSectionHeader}
   renderItem={this._renderItem}
   sections={this.state.allMath}
   refreshing={false}
   initialNumToRender={1}
   onRefresh={()=>{alert("刷新")}}
   ItemSeparatorComponent={this._separatorCom}
   SectionSeparatorComponent={() => <View
       style={{height: 10, backgroundColor: 'blue'}}></View>}
   keyExtractor={(item,index)=>("index"+index+item)}
   onEndReached={(info)=>{alert("到达底部")}}
   onEndReachedThreshold={0}
   stickySectionHeadersEnabled={true}
/>

//刷新和加载的代码应写在哪里

正在回答

1回答

  1. 可以使用RefreshControl实现下拉刷新功能:

  2. 使用onEndReached与onEndReachedThreshold属性来实现上拉加载的功能:

  <SectionList
    data={this.state.projectModels}
    renderItem={(data)=>this.renderRow(data)}
    // refreshing={this.state.isLoading}
    // onRefresh={()=>this.loadData()}
    keyExtractor={item=>item.item.id}
    ListFooterComponent={()=>this._renderFooter()}
    onEndReached={()=>this._onEndReached()}
    onEndReachedThreshold={1}
    refreshControl={
        <RefreshControl
            title='Loading...'
            titleColor={this.props.theme.themeColor}
            colors={[this.props.theme.themeColor]}
            refreshing={this.state.isLoading}
            onRefresh={()=>this.loadData()}
            tintColor={this.props.theme.themeColor}
        />
    }
/>

然后在loadData()中实现下拉刷新的逻辑,在_onEndReached()中实现上拉加载的逻辑即可;

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_Y_353 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-03-02 18:14:07
  • 最终也没告诉大家上拉加载的方法,只抛出了个onEndReached和onEndReachedThreshold={1} 这里给1 不就一加载页面就执行那个函数了嘛
    回复 有任何疑惑可以回复我~ 2018-09-21 15:56:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信