使用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的帮助下进行渲染。
等一下,是不是全部转录到es5? (所以let - > var无论如何) – Ricky
自从'0.6.0'以来,React Native已经在'babel'内部进行了所有的传输,所以这可能不再是一个问题。 – pbanka
一切都好。自此实现了! – Ricky