我遇到一个问题,我使用react-router-dom的路由一次显示所有路由.因此,当我渲染我的App组件和包含“路由”的开始时,我看到的是每个路由的页面彼此重叠.所以看起来像这样:
如此一开始,这就是我的index.jsx,它正在页面上呈现App组件:
// 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);
在我的应用程序组件中,路由设置如下:
// 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时,我也收到此错误:
显然是接线错误,对于现有版本不同的文档,我有些困惑.并非常感谢您提供有关如何解决此问题的建议!
解决方法:
从React Training开始:
Routes without a path always match.
因此,在您的情况下,两者都将始终匹配,因为您正在使用模式.