我正在尝试使用ReactJS创建一个简单的Webapp,我想使用React-Bootstrap提供的 Navbar
。我创建了一个名为 Navigation.js
的文件,其中包含一个名为 Navigation
的类,以将 Navbar
和路由从 App.js
文件中分离。然而,这两个部分似乎都没有起作用。当我加载页面时,页面是空白的,没有Navbar。有人能找出错误吗?
Navigation.js:
import React, { Component } from 'react';
import { Navbar, Nav, Form, FormControl, Button, NavItem } from 'react-bootstrap';
import { Switch, Route } from 'react-router-dom';
import { Home } from './Page';
class Navigation extends Component {
render() {
return (
<div>
<div>
<Navbar>
<Navbar.Brand href="/">React-Bootstrap</Navbar.Brand>
<Navbar.Collapse>
<Nav className="mr-auto">
<NavItem eventkey={1} href="/">
<Nav.Link href="/">Home</Nav.Link>
</NavItem>
</Nav>
<Form inline>
<FormControl type="text" placeholder="Search" className="mr-sm-2" />
<Button variant="outline-success">Search</Button>
</Form>
</Navbar.Collapse>
</Navbar>
</div>
<div>
<Switch>
<Route exact path='/' component={Home} />
<Route render={function () {
return <p>Not found</p>
}} />
</Switch>
</div>
</div>
);
}
}
export default Navigation;
App.js:
import React, { Component } from 'react';
import Navigation from './components/routing/Navigation';
class App extends Component {
render() {
return (
<div id="App">
<Navigation />
</div>
);
}
}
export default App;
我尝试使用来自`react-router-bootstrap`的`LinkContainer`作为包含在`NavItem`中的内容,但结果相同。
为了完整起见,这是Page.js的代码:import React, { Component } from 'react';
import { Link } from 'react-router-dom';
export const Page = ({ title }) => (
<div className="App">
<div className="App-header">
<h2>{title}</h2>
</div>
<p className="App-intro">
This is the {title} page.
</p>
<p>
<Link to="/">Home</Link>
</p>
<p>
<Link to="/about">About</Link>
</p>
<p>
<Link to="/settings">Settings</Link>
</p>
</div>
);
export const About = (props) => (
<Page title="About"/>
);
export const Settings = (props) => (
<Page title="Settings"/>
);
export const Home = (props) => (
<Page title="Home"/>
);
Nav.Item
而不是NavItem
。 - kugo2006Nav.Item
可以少导入一个组件。此外,这个问题是关于Nav.Link
和路由器的,看起来我只是复制了 OP 的代码片段并进行了修复,所以我没有进行太多重构 :) - SrThompson