使用可以更新的固定节标题来反应Native ListView

时间:2016-01-21 06:50:25

标签: ios listview react-native

我在listview中创建了一个响应状态更改的节头,但我意识到我需要修复它。但是在将它从renderHeader更改为renderSectionHeader时,它已被修复但不再响应状态更改。

    <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 个答案:

答案 0 :(得分:1)

如果您使用renderSectionHeader呈现标题,则需要使用cloneWithRowsAndSections而不是cloneWithRows

Here是关于如何根据您的数据实现此功能的非常好的讨论。

Here是GitHub上cloneWithRowsAndSections的实现。