2017-06-02 95 views
0

我使用<FlatList>渲染列表本地FlatList:响应延迟反应

<FlatList 

     ListFooterComponent={this.renderFooter} 
     ItemSeparatorComponent={this.renderSeparator} 
     refreshing={this.state.refreshing} 
     onRefresh={this.doPullRefresh} 
     onEndReached={this.endFooter} 
     initialNumToRender={10} 
     onEndReachedThreshold={0.5} 
     removeClippedSubviews={false} 
     data={this.state.listdata} 
     renderItem={({item}) => <ListItem onPress={this.goToStuInfo} alldata={item} id={item.key} number={item.number} avatar={item.avatar} name={item.name} />} 
     /> 

数据的总规模约为300。因此,我可以看到,而其他数据被呈现为显示的一些数据项目清单。

此刻(有些数据还在渲染中),如果我触摸一个项目,会有延迟。我必须等待很长时间才能得到答复。即使按下“后退”按钮,我也必须等待。

有没有解决方案可以首先响应我的触摸动作?

我的解决方案

好吧,我解决了这个问题,通过呈现10个项目一次。

我会在onEndReached

作品推向更多的数据this.state.listdata我。

回答

0

是道具变化时雅触摸项目? 300个列表元素并不是什么大不了的

“限制渲染窗口还可以减少React和本地平台需要完成的工作量,例如从视图遍历中获得的工作量即使您渲染了最后一百万个元素,通过这些新列表,不需要遍历所有这些元素以进行渲染,甚至可以使用scrollToIndex跳至中间,而无需过多渲染。“

+0

不,该项目将执行'console.log('item is touched');'当按下时。但是我必须等待很长时间才能看到在屏幕上打印的这条信息。 – PYL