Fork me on GitHub

SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.

 

问题描述

  使用react-native init创建了一个新项目,在package.json中使用的react-native的版本如下:

"dependencies": {
        "react": "15.4.1",
        "react-native": "0.39.1"
}

报出如下图所示的错误: 


SyntaxError 

 

SyntaxError:Strict mode does not allow function declaration in a lexically nested statement.

解决办法

第一种解决方案

打开.\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"
}

改成

"dependencies": {
        "react": "15.4.1",
        "react-native": "0.38.0"
}

问题原因

  react-native的源码问题,在use strict严苛模式下,不允许如上的方式声明函数,会编译不通过,fackbook官方应该会会快修复这个问题。

posted @ 2017-09-30 14:44  cosyer  阅读(423)  评论(0编辑  收藏  举报