首页 > 解决方案 > 如果使用 initialNumToRender 获取更大的值,FlatList 会挂起 UI

问题描述

我创建了联系人屏幕,右侧有一个字母字典字符,如果用户选择任何我需要将平面列表移动到该联系人的字符。

但以前我发现它不起作用,因为 flatlist 没有在开始时加载所有数据,如果我试图移动到 flatlist 没有加载的数据,什么都不会发生。

所以暂时我找到了使用 initialNumToRender 内部方法的解决方案,在该方法中我发送了总计数,它可以工作,但是由于我的记录大约 200,它被挂起并且在切换之间需要时间

有没有更好的方法来达到同样的效果?

我像这样使用了flatList

<FlatList
        ref={ref => (this._mainList = ref)}
        initialNumToRender={this.props.data.length}
        scrollEventThrottle={16}
        onViewableItemsChanged={this.onViewableItemsChanged}
        extraData={this.props.data}
        getItemLayout={this.getItemLayout}
        keyExtractor={item => item}
        getItemLayout={this.props.getItemLayout}
        showsHorizontalScrollIndicator={false}
        showsVerticalScrollIndicator={false}
        {...this.props}
      />

标签: androidiosreact-nativereact-native-flatlist

解决方案


正如这里已经写的:FlatList

initialNumToRender :这应该足以填满屏幕,但仅此而已。


推荐阅读