我遇到的问题是我使用react-router-dom的路由一次显示所有路由。因此,当我渲染我的App组件和包含路由的开始时,我看到每个路由的页面彼此重叠。所以它看起来像这样:
Sooo开始如何开始,这是我在页面上呈现App组件的index.jsx:
// Dependencies
import React from 'react';
import ReactDOM from 'react-dom';
// Components
import App from './components/app.jsx';
// Styles
import './index.scss';
const container = document.getElementById('main');
ReactDOM.render(<App />, container);
在我的App Component中,路由设置如下:
// Dependencies
import React from 'react';
import { BrowserRouter as Router, Route, Match, Miss } from 'react-router-dom';
// Components
import Login from './pages/login/login.jsx';
import Home from './pages/home/home.jsx';
// Styles
import './app.scss';
const App = () => {
return (
<Router>
<div>
<Route exact pattern='/' component={Login}/>
<Route exact pattern='/home' component={Home}/>
</div>
</Router>
);
};
export default App;
这是我的Login / Home组件(Home组件完全相同,只是替换了Login):
// Dependencies
import React from 'react';
// Styles
import './login.scss';
class Login extends React.Component {
render() {
return (
<div className="content">
<div className='title'>
Login Page
</div>
</div>
);
}
}
export default Login;
我还注意到,当我导航到http://localhost:9999/home
时,我也收到了这个错误:
显然有些东西连线不正确,我对现有的不同版本的文档感到有些困惑。关于如何解决这个问题的建议非常感谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
您需要添加 Switch 标签。它将在您的组件之间切换。
const App = () => {
return ( <Router>
<Switch> <Route exact path='/' component={Login}/>
<Route exact path='/home' component={Home}/>
</Switch>
</Router> ); };