当前位置: 首页 > 知识库问答 >
问题:

ReactJS语法错误:意外的标记

金正阳
2023-03-14

我在我的ReactJS应用程序上得到一个意外的令牌。但是我相信语法是正确的。

import React, { Component } from 'react';

class Auth extends Component {
    constructor(){
        super()
        this.state={
            authStatus: "Sign In",
            isAuthenticated: false
        }
    }
    AuthMe = () =>{
        console.log("Working")
    }
    render() {
        return (
            <button type="button" onClick={this.AuthMe}>{this.state.authStatus}</button>
        );
    }
}

export default Auth;

./src/组件/身份验证/索引中的错误.js模块生成失败: 语法错误: 意外的标记 (11:11)

> 11 |     AuthMe = () =>{
     |            ^
  12 |         console.log("Working")
  13 |     }

我错过了什么?

这是我的webpack.config.js

const path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
    publicPath: '/',
  },
  module: {
    rules: [{
      test: /\.jsx?$/,
      exclude: [
        path.resolve(__dirname, 'node_modules'),
      ],
      loader: 'babel-loader',
    }]
  },
  resolve: {
    extensions: ['.json', '.js', '.jsx', '.css']
  },
  devtool: 'source-map',
  devServer: {
    historyApiFallback: true
  }
};

。巴伯尔克

{
    "presets": ["es2015","react","stage-0"],
    "plugins": ["transform-decorators-legacy"]
}

共有3个答案

钦耀
2023-03-14

使用 var AuthMe 或 const AuthMe 而不是 AuthMe

import React, { Component } from 'react';

    class Auth extends React.Component {
        constructor(){
            super()
            this.state={
                authStatus: "Sign In",
                isAuthenticated: false
            }
        }
        var AuthMe = () =>{
            console.log("Working")
        }
        render() {
            return (
                <button type="button" onClick={this.AuthMe}>{this.state.authStatus}</button>
            );
        }
    }

    export default Auth;
东方俊材
2023-03-14

我之前在这里回答过这个问题:箭头函数语法对webpack不起作用?

TLDR是那个胖箭头还没有在ES201任何标准中。你需要添加一个额外的巴贝尔变换。

npm安装--保存dev babel插件转换类属性

编辑:看到上面的babelrc配置,运行上面的配置,然后将. babelrc更改为

{
    "presets": ["es2015","react","stage-0"],
    "plugins": ["transform-decorators-legacy", "transform-class-properties"]
}

杜志
2023-03-14

尝试:

class Auth extends Component {
    constructor(){
        super()
        this.state={
            authStatus: "Sign In",
            isAuthenticated: false
        }
    }
    AuthMe() {
        console.log("Working")
    }
    render() {
        return (
            <button type="button" onClick={this.AuthMe}>{this.state.authStatus}</button>
        );
    }
}

注意:AuthMe不仅仅是一个常规函数,如果这对您很重要的话,它也不是一个胖箭头函数。

使用胖箭头函数作为类函数不是标准的ES6语法(目前该提案是第2阶段),因此您需要一个额外的babel插件来添加该功能。

有关更多详细信息,请参阅此答案。

 类似资料:
  • 我正在尝试开始在ReactJS中创建一个站点。然而,当我试图将我的JS放在一个单独的文件中时,我开始遇到这样的错误:“uncaughtSyntaxerror:uncontractedtoken” 我尝试添加添加到JS文件的顶部,但它没有修复任何问题。下面是HTML和JS文件。有没有关于出了什么问题的想法? HTML JS 编辑:我意识到我需要将添加到包含着陆器代码的脚本标记中。然而,在添加这个并重

  • 你好,我尝试在其他问题中搜索,但没有一个提到的解决方案,我尝试对我不起作用。 使用命令时: npm启动 我有一个错误: /src/index.js模块生成失败(来自./node_modules/babel-loader/lib/index.js):语法错误:d:/kodilla/projekty/webpack-to-do-app/src/index.js:意外>令牌(6:4) package.j

  • 我正在查看https://github.com/intoli/remote-browser.我在win10中使用节点11.5工作。我遵循了回购底部的说明: 现在,当我尝试使用以下命令运行它时: 我怎样才能让它工作? 编辑索引。js: 编辑2:

  • 我以前从未遇到过这种情况,但现在我们开始: 有什么想法吗? 运行php fpm 5.3 Ubuntu 看起来好像评论不起作用...

  • 问题内容: 我正在尝试与Jenkins构建过程一起运行以下Shell命令 现在构建失败 但是奇怪的是,当直接在Jenkin从站上运行此命令时,它可以正常工作。 如您所见,Jenkins也运行shell命令 。 任何帮助将不胜感激,因为我努力了几个小时 问题答案: 是由启用的扩展模式。目前尚不清楚如何在您的Jenkins从站中启用它,但是将命令添加到脚本中应该可以解决您的问题。

  • 我正在尝试用Typescript和ASP.NET内核设置Angular2。以下是package.json: 和tsconfig.json 和SystemJs.Config.js 和app.component.ts: 帮我想出解决办法。