在 ScrollView ->Flat-List ->map for iPhone 6s 中使用时,可触摸组件在 ReactNative 中不起作用

问题描述

当在 ScrollView -> Flat-List -> map for iPhone 6s 中使用时,所有 touchables 的 onPress 函数不会触发该函数。该代码适用于所有其他设备(iPhone X、iphone11 等)。当我使用 onPressIn 时问题得到解决,但它降低了用户体验。

<ScrollView horizontal showsHorizontalScrollIndicator={false}>
          <FlatList
            data={props.seats}
            keyExtractor={(index) => `seater${index}`}
            scrollEnabled={false}
            renderItem={({ item,index }) => (
                { props.seats[index].map(
                    (object,i) => (
                      <TouchableOpacity onPress={() => alert("Helllo")}>
                      </TouchableOpacity>
                    )
                  )}
            )}
          />
</ScrollView>

解决方法

尝试删除 ScrollView,因为 Flatlist 已经有滚动,对于 horizontal,您可以像这样添加它

<FlatList
            data={props.seats}
            keyExtractor={(index) => `seater${index}`}
            scrollEnabled={false}
            renderItem={({ item,index }) => (
                { props.seats[index].map(
                    (object,i) => (
                      <TouchableOpacity onPress={() => alert("Helllo")}>
                      </TouchableOpacity>
                    )
                  )}
            )}
            horizontal // add it here 
/>