解析错误:意外的令牌const

Tom*_*Tom 3 babel meteor ecmascript-6 reactjs eslint

我目前正在设置一个流星应用程序,我正在使用eslint和babel,但是我收到以下代码片段的以下错误:

const Navigation = props => (
  const classes = props.classes;

  return (
    <div className={classes.root}>
    </div>
  )
);
Run Code Online (Sandbox Code Playgroud)

错误:

2:4 - Parsing error: Unexpected token const
Run Code Online (Sandbox Code Playgroud)

在这里重新创建了我的eslint配置.我的.babelrc配置如下:

{
  "presets": ["env", "react"]
}
Run Code Online (Sandbox Code Playgroud)

May*_*kla 5

这是因为您正在使用concise body的的箭头功能和预期中的表达式(),而不是一个声明.要使用语句,您需要block body使用{}而不是使用().

像这样:

const Navigation = props => {
  const classes = props.classes;

  return (
    <div className={classes.root}>
    </div>
  )
};
Run Code Online (Sandbox Code Playgroud)

根据MDN Doc:

箭头功能可以具有"简洁的身体"或通常的"块体".

在简洁的主体中,只需要一个表达式,并附加一个隐式返回.在块体中,必须使用显式返回语句.