美文网首页
React 在jsx文件中使用箭头函数报错

React 在jsx文件中使用箭头函数报错

作者: 鱼左三水 | 来源:发表于2018-06-07 14:35 被阅读0次

项目环境配置

npm(v5.5+),node(v8.9.3),webpack(v3.10.0)

问题描述

使用webpack打包编译react项目,默认安装配置了babel-loader, babel-core, babel-preset-env等babel核心库。但在jsx文件中使用extends Component方式创建的react组件里编写静态方法时使用箭头函数报错。

错误格式如下:

ERROR in ./app/components/modules/exampleComp.jsx

Module build failed: SyntaxError: 文件路径: Unexpected token (16:10)

问题分析

我们知道要在项目开发过程中使用es6等高级语法,需要用到babel。对于webpack来说,可在loader里面配置babel-loader。由于babel-preset配置选项较多,我们一般可以在根目录下建立.babelrc文件,专门用来放置babel preset配置,它是一个json文件。形如:

//.bablerc文件
{
    "presets": [
      "react", "es2015", 
        ['env',{
            "targets": {
                "browsers": ['> 1%', 'last 2 versions']
            }
        }]
    ]
}

//原webpack.config.js文件
module: {
    rules: [
        {
            test: /\.js$/,
            use: {
                loader: 'babel-loader'
            },
            exclude: '/node_modules/'
        }
    ]
}

简要来看,‘react’版块用于编译jsx文件,'es2015'用于预先加载es6语法的模块,'env'告诉babel只编译批准的内容。

项目中js文件的箭头函数是没有问题的,只在jsx文件中使用箭头函数会编译报错。

问题解决

基于上述分析,猜想还缺少编译jsx中es6语法的版块。参见阮老师的babel教程,选取内容如下:

# ES2015转码规则
$ npm install --save-dev babel-preset-es2015

# react转码规则
$ npm install --save-dev babel-preset-react

# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3

安装ES7的转码规则npm install -D babel-preset-stage-0,并在.babelrc里更改配置:

//省略其他代码
"presets": ["react", "es2015", "env","stage-1"],

重新编译打包文件,问题解决。
以上。

相关文章

  • React 在jsx文件中使用箭头函数报错

    项目环境配置 npm(v5.5+),node(v8.9.3),webpack(v3.10.0) 问题描述 使用we...

  • React随手记

    react 中有JSX语法, 页面中使用 时,需要引入react,否则会报错render() 函数中的标签也是j...

  • 文件模块一

    也就是说,在使用JSX的代码文件里面,即使代码中并没有直接使用React,也一定要导入React,这是因为JSX最...

  • React 源码(二)JSX & createElement

    概述 在使用 React 的时候,编辑的都是 JSX 文件,那么 JSX 文件是什么呢?其实在写 JSX 时,Re...

  • react语法结构

    1.react JSX语法原理 react是函数式编程,使用jsx语法来渲染组件。jsx语法是合法的JavaScr...

  • ES6新特性5:函数的扩展之箭头函数

    箭头函数在ES6中最常用的特性,学习好至关重要,特别在Vue项目和React项目。 箭头函数:ES6中使用(=>)...

  • 3-事件处理

    React使用JSX传递函数而并非字符串来作为处理程序; 在react中不能通过return false来阻止默认...

  • react性能优化 不要再component的props中使用箭头函数或者bind,因为每次使用箭头函数和bind...

  • iOS WKWebView js oc交互

    ES6 语法 自己的理解 ==>箭头函数 JSX语句 在JSX中嵌入任何JavaScript表达式,方法是将其包装...

  • ReferenceError:can not find vari

    代码如下: 报错信息: 出错原因:在代码中使用了TabIconBottom,这是jsx语法,必须引入React解决...

网友评论

      本文标题:React 在jsx文件中使用箭头函数报错

      本文链接:https://www.haomeiwen.com/subject/vkawsftx.html