过滤具有大量行的ListView

时间:2015-11-18 17:16:40

标签: react-native

尝试在反应原生中实现ListView的快速过滤。目前我正在过滤DataSource来实现这一目标。它有效,但会导致严重的性能问题。问题如下:

  1. 有一个包含100个项目的ListView。所有这些都被渲染
  2. 正在应用过滤器,将其缩小为2项
  3. 清除过滤器并且DataSource返回最初的100个项目 ListView重新渲染98项导致严重性能问题的项目 (讨论here
  4. 批量渲染新行时的ListView性能

    我在这里错过了什么吗?

    编辑:添加了rnplay示例应用以展示我目前正在使用的方法https://rnplay.org/apps/szko6Q

1 个答案:

答案 0 :(得分:1)

向用户呈现以下提及的属性

<ListView
   removeClippedSubviews={true}
   renderRow={this.renderRow}
   dataSource={this.getDataSource()}
   renderScrollComponent={(props) =><React.RecyclerViewBackedScrollView {...props}/>}
   style={{overflow:'hidden'}}
   renderSectionHeader={this.renderSectionHeader}/>