问题描述
使用react-native init
创建了一个新项目,在package.json
中使用的react-native
的版本如下:
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
报出如下图所示的错误:
SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.
解决办法
第一种解决方案
打开.
ode_modules
eact-nativeLibrariesCoreInitializeCore.js 112
行。
代码如下图:
将function handleError(e, isFatal)
替换成var handleError = function(e, isFatal)
如下图所示:
最终执行npm start -- --reset-cache
或者reload
,解决问题。
第二种解决方案
将react-native
版本改成0.38.0
也能解决问题。
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
改成
"dependencies": {
"react": "15.4.1",
"react-native": "0.38.0"
}
问题原因
react-native的源码问题,在use strict
严苛模式下,不允许如上的方式声明函数,会编译不通过,fackbook官方应该会会快修复这个问题。