通常只会立即呈现简单的ListView
行。但是,有时候渲染会慢慢进行,您可以看到正在绘制的屏幕。是什么原因造成的?
我首先在我正在构建的应用程序中注意到它试用了React Native,但也能够在react-native存储库Movies example中可靠地重现。重现:
你应该看到这样的事情:
我注意到,从反应的角度来看,ListView
在屏幕上完全可见之前就完成了渲染。我通过将回调传递给导致setState
重新呈现的ListView
调用找到了这一点。回叫会将一条消息记录到控制台,并在绘制完整屏幕之前略微显示该消息。
我非常想知道其他人是否观察到这一点以及是否可以避免。它经常在我的应用程序中发生,并使实时搜索感觉非常慢。
答案 0 :(得分:3)
您是否尝试过添加" initialListSize'在ListView上?如果事先知道最小列表大小,我发现它的性能提升了很多。
编辑 - 来自文档:
速率限制行渲染 - 默认情况下,每个事件循环只渲染一行(使用pageSize prop自定义)。这会将工作分解为更小的块,以减少渲染行时丢帧的可能性。
尝试将pageSize = {10}添加到ListView