这是我的设置:
<Modal
statusBarTranslucent
visible={isOpen}
onDismiss={onRequestClose}
onRequestClose={onRequestClose}
animationType={animationPreset}>
<TouchableWithoutFeedback
onLayout={onLayout}
onPressOut={onRequestClose}>
<View
style={modalContainerStyle}>
<TouchableWithoutFeedback>
<View
style={style.modalChildStyle}>
{children}
</View>
</TouchableWithoutFeedback>
</View>
</TouchableWithoutFeedback>
</Modal>
这是 FlatList 子项:
<View>
<FlatList
data={dataItems}
scrollEnabled
keyExtractor={(item) => item.id}
renderItem={({item}) => (<SomeComponent someComponentData={item} />)}
/>
</View
FlatList 不滚动!
我尝试将
onStartShouldSetResponder={() => true}
添加到Views
内的Modal
以及包裹FlatList
的那个,但没有任何效果。我也尝试添加style={{flex: 1}}
,但这也不起作用。
这是我解决问题的方法:通过使用具有
renderItem
的 View
将组件包装在 onStartShouldSetResponder={() => true}
中。例如:
<FlatList
data={dataItems}
scrollEnabled
keyExtractor={(item, index) => item.id}
renderItem={({item}) => (
<View onStartShouldSetResponder={() => true}>
<SomeComponent
someComponentData={item}
key={uuid()}
/>
</View>
)}
/>