React Native事件不起作用

时间:2018-01-08 15:38:17

标签: ios objective-c react-native

我有一个简单的反应组件,只显示一个按钮:

<Button onPress={() => console.log("test")} title="Button"/>

当我将此按钮放入我使用react-native init创建的项目时,它会按预期工作。

但是,我有一个现有的项目,我手动整合了React Native(0.51.0)(因为它没有使用可可豆荚;我遵循了这个指南:https://medium.com/@joshyhargreaves/adding-react-native-to-existing-ios-project-without-cocoapods-6f1ee9106009)。

该项目似乎工作正常:UI加载,按钮提供视觉反馈,当我点击它。但按钮onPress事件未被触发,因此它不会记录任何内容。

没有错误或警告(Class RCTCxxModule was not exported除外,但忽略这一点似乎是安全的。)

我现在已经不知道我可以尝试什么,或者如何调试这个问题,而不是潜入Reacts触摸处理代码。这就是我的尝试:

  • 确保只有一个RCTRootView,并且它是在主线程中创建的。
  • 检查远程调试器中发生的任何可疑事情;一切看起来都很正常(没有抛出异常或记录警告)。
  • 测试了一些应该触发事件的其他组件;例如,TouchableOpacity也不起作用。
  • 超时后记录某些内容确实有效,所以看起来任何事情都不会过早解除分配
  • 检查地铁捆绑器报告的错误:它没有打印任何内容

我需要做些什么才能让我的按钮打印&#34;测试&#34;当我点击它?

2 个答案:

答案 0 :(得分:0)

我认为你没有启用Debug JS Remotely选项。如果不这样做,则必须打开React Native Debug菜单按下(命令/控制)+ D或在使用真实设备进行调试时摇动设备。然后只需按下Debug JS Remote,它就会显示在谷歌浏览器中。然后检查并打开控制台。它就在那里!

答案 1 :(得分:0)

这种螨虫是由主机(您的计算机)和客户端(移动设备)之间的日期差异引起的。

您可以通过运行adb shell "date" && date进行检查 看看是否有差异。

如果有一个转到您的移动设备,然后关闭automatic date & time并重新打开。

然后再次提到测试时间差异,如果没有更多差异,则抽头事件应在调试模式下工作

原始git issue answer by - Alex Ciarlillo

中的更多详细信息