Ios 本地ListView对加载的反应较慢
我有一个简单的ListView,它似乎需要很长时间才能加载它的项目。我在发布模式下进行了测试,加载整个页面大约需要3秒钟。如果我设置Ios 本地ListView对加载的反应较慢,ios,listview,react-native,Ios,Listview,React Native,我有一个简单的ListView,它似乎需要很长时间才能加载它的项目。我在发布模式下进行了测试,加载整个页面大约需要3秒钟。如果我设置initialListSize={1}我可以看到它逐项构建列表 ListView JSX代码: <ListView dataSource={this.state.dataSource} renderRow={this.renderRow} renderSeparator={(sectionID, rowID) => &
initialListSize={1}
我可以看到它逐项构建列表
ListView JSX代码:
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
renderSeparator={(sectionID, rowID) => <View key={`${sectionID}-${rowID}`} style={styles.separator} />}
style={styles.listView}
initialListSize={1}
/>
}
style={styles.listView}
initialListSize={1}
/>
以及renderRow方法:
renderRow(row) {
// console.log ('rendering scale row: ' + row.numerator + ':' + row.denominator );
return (
<TouchableHighlight onPress={() => this.pressRow(row)} underlayColor="grey">
<View style={styles.rowContainer}>
<Text style={styles.rowText}>{row.hasOwnProperty('label') ? row.label : row.numerator + ':' + row.denominator}</Text>
<Text style={styles.rowText}>{row.hasOwnProperty('label') ? row.numerator + ':' + row.denominator : ''}</Text>
</View>
</TouchableHighlight>
);
}
renderRow(行){
//console.log('rendering scale row:'+row.numerator+':'+row.deminator);
返回(
此选项。按row(row)}参考底图颜色=“灰色”>
{row.hasOwnProperty('label')?row.label:row.numerator+':'+row.deminator}
{row.hasOwnProperty('label')?row.numerator+':'+row.denominator:'}
);
}
我在renderRow没有做任何复杂的事情。。。数据已经在以前的视图中获取并通过props
传入
是否有一些我不知道的事情可能会影响加载/渲染时间
这是iOS版,在iPhone4S上。在我的测试中只有12-21行
我还应该补充的是,应用程序的核心是使用JULSC++框架,并在其中一个视图中运行一些音频处理。我有一个音频处理线程,它只在该视图可见时运行-所有其他视图(包括具有此ListView的视图)将停止音频处理线程。我也尝试过以类似的方式停止音频线程,但没有任何区别
我不确定这是否对你有帮助,但我能想到三件事你可以试试cmd
+T
将打开/关闭“慢速动画”。这是不可能的最好开始使用FlatList或SectionList,因为ListView现在已不推荐使用 很少有警告,比如必须使用通量/重复频率或继电器。请在此处查看详细信息(功能/注意事项)
代码看起来正常。设备还是模拟器?只有iOS吗?有多少行?我试着注释console.log并在发布模式下进行测试-这些行仍然需要时间加载。。还没有试过cmd+t。让我知道如果command+t有帮助,请确保在模拟器中按组合键。如果这还不能解决问题,请拍摄一段视频,这样我们就可以看到您所看到的内容。我只是在设备上看到这一点,还没有在模拟器中测试过(模拟器需要很长时间才能加载,并且会减慢我老化的macbook!)啊,那么这肯定不会解决您的问题。对不起,我帮不上忙。