2016-05-13 37 views

回答

21

您應該可以通過使用onEndReached支柱來實現A ListView。當你到達最後,你可以渲染加載器。在我的情況下,我使用renderFooter來渲染列表底部的加載器。在我的場景中

您可以在組件狀態中設置一個名爲messagesLoading的屬性,該屬性在開始獲取新數據時設置爲true,在完成時設置爲false。基於此,您可以在頁腳中顯示或不顯示加載指示符。

此示例性部分實施應該給你的你如何能做到這一個想法:

class ThreadDetail extends React.Component { 

    constructor() { 
     super() 
     this.state = { 
      loading: false 
     } 
    } 

    loadMoreMessages() { 
     this.setState({ loading: true }) 
     fetchMessagesFromApi() 
      .then(() => { 
       this.setState({ loading: false }) 
      }) 
      .catch(() => { 
       this.setState({ loading: false }) 
      }) 
    } 

    renderFooter() { 
     return this.state.loading ? <View><Text>Loading...</Text></View> : null 
    } 

    render() { 
     return <ListView 
      renderRow={message => <Message message={message}/>} 
      dataSource={this.state.dataSource} 
      renderFooter={this.renderFooter.bind(this)} 
      onEndReached={this.loadMoreMessages.bind(this)} 
      onEndReachedThreshold={10} 
      scrollEventThrottle={150} /> 
    } 
} 
+1

這正是它!我錯過了文檔中的'renderFooter'道具。萬分感謝! – danseethaler

+0

您需要將div替換爲視圖 –