我有一个Stack.Navigator,当我导航到一个包含FlatList的页面时,该页面一次渲染4x6个项目,所有其他组件都将渲染,而FlatList将不可见/不渲染。然后应用程序锁定,然后平面主义者渲染所有项目,布局被打乱,这是不可取的。这是意料之中的行为吗?我该怎么办?我更喜欢整个应用程序冻结/断断续续,直到第一个页面的所有内容都可以同时显示,而不是渲染除了平面列表之外的所有内容,然后在UI上来回切换。
在我看来,FlatList组件是没有争议的。
<View>
<FlatList
numColumns={4}
columnWrapperStyle={styles.colWrap}
keyExtractor={(theitem) => theitem.id}
renderItem={renderIndividualSound(onSoundButtonPress)}
data={soundPage}
key="soundspage"
/>
</View>
经过进一步检查,我使用了一个useState((钩子,该钩子用一个空白数组初始化,然后使用useEffect(((=>{},[](挂钩在初始化时更新状态一次,这意味着第一次渲染时通过了一个空白列表。