使用' const'在反应类(和流星)

时间:2017-02-01 21:08:33

标签: reactjs meteor const

我正在使用流星做出反应。

在某个组件的课程中,我有以下内容:

const Media = (props) => {
  ...  
}

但这不起作用,我不明白为什么。 我在第一行有一个构建错误:

Unexpected token, expected (

似乎我不能使用" const"在我班上我无法定义无状态组件.. 谢谢你的帮助!

一个小小的额外发现:

如果我按如下方式定义组件:

import React from 'react';

const Test = () =>  {
  return (<img src=".." />);
}

export default Test;

然后我可以导入组件,一切正常。

现在,如果我有一个嵌套的组件&#39;如下:     import来自&#39; react&#39;;

的反应
class Test extends React.Component {

  const Test = () =>  {
    return (<img src=".." />);
  }

  render(){
    return(<img src=".." />)
  }

}

export default Test;

然后我在&#34; const&#34;上得到了错误。线。这是不能做的事吗?我已经看到使用这种结构的不同代码示例。

1 个答案:

答案 0 :(得分:3)

这两种都是可能的:

const Media = (props) => (
  <div>
    ...
  </div>
)

const Media = (props) => {
  <div>
    ...
  </div>
}

第一个将返回div,后一个不会。

var Media = function Media(props) {
  return React.createElement(
    "div",
    null,
    "..."
  );
};

var Media = function Media(props) {
  React.createElement(
    "div",
    null,
    "..."
  );
};

错误可能是代码中的其他地方。

通常,如果你写下来,你可能会产生这样的错误:

const Media = { a, b, c} => { return a + b + c }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

你离开()参数。

在您的反馈之后,我理解了这个问题。在ES6中,无法在class内定义变量。只有方法才有可能。

从技术上讲,当您在const内写varletclass时,您正在定义变量名称,即使我知道您尝试创建该函数。 / p>

但是如果您使用ES7,您可以在static内定义class和非静态属性而不会出现问题。

尝试使用static关键字,不使用任何关键字来定义变量。

我找到的最近的是here