2016-01-21 90 views
1

我在我的列表視圖做了一個部分標題響應狀態的變化,但我意識到我需要它被修復。但是將其從renderHeader更改爲renderSectionHeader時,它是固定的,但不再響應狀態更改。反應原生ListView與固定部分標題,可以更新

<ListView 
     dataSource={this.state.dataSource} 
     renderHeader={this.renderHeader} 
     renderRow={this._renderRow} 
    /> 

renderHeader: function() { 
return (
    <View> 
    <Text>{this.state.header}</Text> 
    </View> 

以這種方式,如果狀態發生改變,文本(或任何它)將相應地更新。但是當滾動列表時,標題不固定。

<ListView 
     dataSource={this.state.dataSource} 
     renderSectionHeader={this.renderSectionHeader} 
     renderRow={this._renderRow} 
    /> 

renderSectionHeader: function() { 
return (
    <View> 
    <Text>{this.state.header}</Text> 
    </View> 

隨着代碼作爲上述然而,滾動時但使改變時註明他們奇怪,因爲它們與普通報頭做不在節頭更新節頭被固定在適當位置。

回答

1

如果您使用renderSectionHeader來呈現標題,則需要使用cloneWithRowsAndSections而不是cloneWithRows

Here是一個很好的討論如何實現這取決於你的數據。

Here是在GitHub上執行的cloneWithRowsAndSections

+0

如果使用cloneWithRowsAndSections設置它,它也不起作用。無論如何,部分標題不響應狀態更改,但標題確實.... – Hasen