我正在使用流星做出反应。
在某个组件的课程中,我有以下内容:
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;上得到了错误。线。这是不能做的事吗?我已经看到使用这种结构的不同代码示例。
答案 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
内写var
,let
,class
时,您正在定义变量名称,即使我知道您尝试创建该函数。 / p>
但是如果您使用ES7,您可以在static
内定义class
和非静态属性而不会出现问题。
尝试使用static
关键字,不使用任何关键字来定义变量。
我找到的最近的是here。