如何启用嵌套在模态框下的 FlatList TouchableWithoutFeedback 的滚动?

问题描述 投票:0回答:1

这是我的设置:

<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}}
,但这也不起作用。

react-native react-native-flatlist touchablewithoutfeedback
1个回答
0
投票

这是我解决问题的方法:通过使用具有

renderItem
View
将组件包装在
onStartShouldSetResponder={() => true}
中。例如:

   <FlatList
        data={dataItems}
        scrollEnabled
        keyExtractor={(item, index) => item.id}
        renderItem={({item}) => (
          <View onStartShouldSetResponder={() => true}>
            <SomeComponent
              someComponentData={item}
              key={uuid()}
            />
          </View>
        )}
      />
© www.soinside.com 2019 - 2024. All rights reserved.