3

<TouchableOpacity>的 React Native 应用程序中的组件都有关联的回调。这些在 iOS 上运行良好,如果我没有将设备设置为debug. 但是当我确实将其设置为调试时,单击时元素确实会改变不透明度,但不会调用回调。

有谁知道我该如何解决这个问题?

笔记

  • 当我使用 时会发生这种情况React Native Debugger,并且当我单击debug开发人员选项时仅使用 Chrome 中显示的默认调试器时。
  • 模拟器不会发生此问题。它发生在Galaxy A30我正在测试的地方。
  • 我在用着react-native@0.62.0
4

1 回答 1

1

我可以确认这个错误存在,你甚至可以用这个非常简单的例子来重现它:

import React from "react";
import { TouchableOpacity, View, Text } from "react-native";

class App extends React.Component {
  render() {
    console.log("Logged in debugger.");
    return <TouchableOpacity 
      onPress={() => console.log("No log in debugger.")}>
        <View style={{height: 200, width: 200, backgroundColor: 'blue'}}>
          <Text>Test</Text>
        </View>
    </TouchableOpacity>;
  }
}

export default App;

这是我的配置:

  • 反应原生0.62.2
  • 反应原生 cli 4.10.1
  • 反应16.13.1
  • 在装有 Android 10 的 OnePlus 6T 上运行

在github上找到可能的解决方案。问题似乎与调试器主机时间和您的设备时间之间的不同步有关。它至少对我有用(禁用自动时间同步并启用它)但它对同事不起作用(他的手机是 P40 lite)。

于 2020-07-31T15:30:49.920 回答