使用React-native时,为什么我的iPhone或模拟器挂着白色屏幕,除非Chrome调试打开?

问题描述:

当使用react-native 0.4.4运行应用程序时,我发现应用程序将挂起iOS模拟器或手机,除非Chrome调试功能处于打开状态。有没有人有一个想法是怎么回事?使用React-native时,为什么我的iPhone或模拟器挂着白色屏幕,除非Chrome调试打开?

我在打开Chrome时没有收到任何错误。我注意到,在没有Chrome的情况下运行时,“示例”React-native应用程序没有任何问题,所以它看起来像是我自己的代码中的东西,但我不知道是什么!

我采取了反应原生的示例代码,并开始一次将我现有项目中的代码添加到一个文件中,直到找到违规行。

这就是:

render: function() { 
     let buttonStyle = styles.disabledLgButton; 
     let buttonTextStyle = styles.disabledLgButtonText; 
     if (this.state.submitEnabled) { 
      buttonStyle = styles.activeLgButton; 
      buttonTextStyle = styles.activeLgButtonText; 
     } 

我花了一段时间来弄明白,甚至当我在那个被破坏的东西代码盯着。

我已经陷入使用某些ecmascript 6功能(如let)的不良(?)习惯。 Chrome将毫无困难地处理let,但手机上的JavaScript引擎窒息。只要我将这些let行更改为var,手机就很乐意在没有Chrome的帮助下进行渲染。

+0

等一下,是不是全部转录到es5? (所以let - > var无论如何) – Ricky

+0

自从'0.6.0'以来,React Native已经在'babel'内部进行了所有的传输,所以这可能不再是一个问题。 – pbanka

+0

一切都好。自此实现了! – Ricky