http://blog.csdn.net/u013531824/article/details/53572821
RN更像是一个不断成长的孩子,在成长的过程中,会遇到各种各样的问题.
问题描述
使用react-native init
创建了一个新项目,在package.json
中使用的react-native
的版本如下:
"dependencies": {
"react": "15.4.1",
"react-native": "0.39.1"
}
- 1
- 2
- 3
- 4
报出如下图所示的错误:
SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.
- 1
解决办法
第一种解决方案
打开 .\node_modules\react-native\Libraries\Core\InitializeCore.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"
}
- 1
- 2
- 3
- 4
改成
"dependencies": {
"react": "15.4.1",
"react-native": "0.38.0"
}
- 1
- 2
- 3
- 4
问题原因
react-native的源码问题,在use strict
严苛模式下,不允许如上的方式声明函数,会编译不通过,fackbook官方应该会会快修复这个问题。