【问题标题】:React Native FlatList consuming all touches (ToucableWithoutFeedback onPress not called)React Native FlatList 消耗所有触摸(未调用 ToucableWithoutFeedback onPress)
【发布时间】:2019-05-23 19:16:20
【问题描述】:

我的 React Native 应用程序中有一个 FlatList,我正在渲染常规单元格。我像往常一样在单元格内添加了Touchables 和onPress 事件,但我的单元格没有接收到触摸事件。我目前在 iOS 上,我试图拦截触摸事件(通过覆盖 Xcide 中的 UIApplications touchesBegan:withEvent: 方法),但由于某种原因,当在 FlatList(方法没有被调用)。平面列表滚动良好(手势识别器工作),但不知何故,应用程序(并且没有任何视图)没有接收到触摸事件。如果我点击FlatList 范围之外的任何地方,就会正确接收和处理触摸。

如何使触摸事件正常工作?我正在使用 React Native 0.59.8。

【问题讨论】:

  • 请添加您的代码
  • @Tim 它太长并且在 NDA 下,否则我会添加。我正在寻找任何可能导致问题的常见陷阱
  • 请创建一个minimal reproducible example。一般来说 onPress 在 FlatLists 中工作得很好

标签: ios react-native touch react-native-flatlist


【解决方案1】:

这是 https://github.com/facebook/react-native/issues/23740 的 React Native 的一个错误(即使该错误由于不活动而关闭,这也正是我正在发生的事情)。我已切换到TouchableOpacity,不透明度设置为 1(以模仿相同的视觉行为),问题就消失了。尽管这不是真正的解决方案,而是一种变通方法,但该错误源自 React Native 本身,因此我认为采用变通方法是目前最好的解决方案

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多