Mai*_*e13 2 javascript reactjs
错误是渲染返回函数中的意外标记,预期为“,”。我正在使用 babel 并将此文件链接到一个 html 文件中。我删除了评论类和组件以供查看。我也删除了评论表单组件。
这是 main.js:
class App extends React.Component {
constructor(props) {
super(this);
this.handleSubmit = this.handleSubmit.bind(this);
this.state = { comments : [] }
}
handleSubmit(event) {
// ...
}
render() {
const comments = this.state.comments.map((comment) => {
<Comment author={comment.author} message={comment.message} />
});
const formcomment = <CommentForm handleSubmit = {this.handleSubmit} />;
return (
{comments}
{formcomment} // ERROR HERE
)
}
}
ReactDOM.render(<App />, document.getElementById("root"))
Run Code Online (Sandbox Code Playgroud)
问题出现了,因为 JSX 要求你只有一个根元素。在您的情况下,您有两个根元素。
如果你想返回多个元素,你需要将它们包装到某种容器中,大多数情况下一个简单的div就足够了:
return (
<div>
{comments}
{formcomment}
</div>
);
Run Code Online (Sandbox Code Playgroud)
如果div打乱了您的样式,您可能需要改用 a Fragment。
编辑:
正如Emile Bergeron指出的,你也可以从 React 16.2 开始返回一个数组:
render() {
return [comments, formcomment];
}
Run Code Online (Sandbox Code Playgroud)
参考。