我在创建一个在我的反应应用程序中呈现菜单的简单组件时遇到了麻烦。
这是我的组件的代码:
import React, { Component } from 'react';
export default class menu extends Component {
render() {
return (
<nav className="navbar navbar-expand-lg navbar-light bg-light">
<a className="navbar-brand" href="#">Navbar</a>
<button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span className="navbar-toggler-icon"></span>
</button>
<div className="collapse navbar-collapse" id="navbarNavDropdown">
<ul className="navbar-nav">
<li className="nav-item active">
<a className="nav-link" href="#">Home <span className="sr-only">(current)</span></a>
</li>
<li className="nav-item">
<a className="nav-link" href="#">Features</a>
</li>
<li className="nav-item">
<a className="nav-link" href="#">Pricing</a>
</li>
<li className="nav-item dropdown">
<a className="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div className="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a className="dropdown-item" href="#">Action</a>
<a className="dropdown-item" href="#">Another action</a>
<a className="dropdown-item" href="#">Something else here</a>
</div>
</li>
</ul>
</div>
</nav>
);
}
}
我把它放在另一个组件中。
import menu from './componentes/menu';
constructor(props){ 超(道具) this.state = {sistemas:[]}; }
class App extends Component {
render() {
return (
<div>
<menu></menu>
</div>
<div className="App">
<div className="bs-header" id="content">
<div className="container">
<h1>Template Changelog</h1>
<p>Lists all changes to the HTML template files</p>
</div>
</div>
); //[js] JSX expressions must have one parent element.
}
}
我也在注释行中收到以下错误
[js] JSX表达式必须有一个父元素。
答案 0 :(得分:4)
您的App
有多个顶级div
。用另一个div
包裹。
答案 1 :(得分:3)
在React 16中,您可以使用Fragment
包裹您的组件,与使用其他div
标记包装相比,这是一种更干净的方法。
您只需从反应库中导入Fragment
。
import React, { Component, Fragment } from 'react';
你可以使用它
<Fragment>
<ComponentA />
<ComponentB />
</Fragment>
文档:https://reactjs.org/docs/fragments.html
否则,您可以使用@Daniel A. White提到的div
标记包装您的组件