【问题标题】:Unexpected token when using multiple punctuations使用多个标点符号时出现意外标记
【发布时间】:2018-04-22 03:08:37
【问题描述】:

Learning react from a tutorial,我正在尝试使用文本和 CSS,但每当我添加多个标点符号(..... / ,,,,,, 等)时,我都会收到如下所述的错误。

没有明确的问题我可以对此进行搜索,任何指向配置/代码错误的指针都是有帮助的!谢谢

App.jsx

import React from 'react';

class App extends React.Component {
   render() {
      return (

         <div>
            <Header/>
            <Footer/>
         </div>
      );
   }
}


class Header extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
         </div>
      );
   }
}

class Footer extends React.Component{
    render(){
        return(
            {
                // notice - no div inside render, so its not mandatory here bt is in App
            }
            <h2> yoo......this is a damn footerrrrr </h2>
        );
    }
}

export default App;

webpack.config.js

var config = {
   entry: './main.js',
   output: {
      path:'/',
      filename: 'index.js',
   },
   devServer: {
      inline: true,
      port: 8081
   },
   module: {
      loaders: [
         {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
               presets: ['es2015', 'react']
            }
         }
      ]
   }
}
module.exports = config;

.babelrc

{
  presets:['es2015','react']
}

控制台错误

webpack: Compiling...
Hash: 6d5c2bbc97798b745cec
Version: webpack 3.8.1
Time: 23ms
 1 asset
  [23] (webpack)/hot nonrecursive ^\.\/log$ 170 bytes {0} [built]
  [59] ./App.jsx 828 bytes {0} [built] [failed] [1 error]
    + 58 hidden modules

ERROR in ./App.jsx
Module build failed: SyntaxError: Unexpected token, expected , (61:20)

  59 |                 // notice - no div inside render, so its not mandatory here bt is in App
  60 |             }
> 61 |             <h2> yoo......this is a damn footerrrrr </h2>
     |                     ^
  62 |         );
  63 |     }
  64 | }

 @ ./main.js 11:11-31
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./main.js
webpack: Failed to compile.

【问题讨论】:

    标签: reactjs syntax-error jsx babeljs


    【解决方案1】:

    你的渲染函数需要返回单个元素:

    render(){
        return(
            <div>Your content here</div>
        );
    }
    

    以下是不允许的

    render(){
        return(
            <div>Your content here</div>
            <h2>Second element not allowed</h2>
        );
    }
    

    【讨论】:

    • 其实是allowed in React 16,但是这种情况下需要返回数组。
    • 哦....明白了,所以所有的东西都必须包含在一个 &lt;div&gt; 中可能是....以便将其视为单个语句?
    • 更像被视为单个元素(可以是反应元素或标准 DOM 元素)。正如@Flying 提到的,在 React 16+ 中,您可以返回一个元素数组。但我不会在你的情况下使用它
    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2017-04-02
    • 1970-01-01
    • 2021-06-09
    • 2021-02-20
    相关资源
    最近更新 更多