Dee*_*ndi 5 reactjs react-router react-router-v4 react-router-dom
我正在尝试使用 v4 react 路由器,但路由器始终呈现初始路径 ('/')。我正在使用
react: ^16.2.0
react-dom: ^16.2.0
react-router-dom: ^4.2.2
当我尝试呈现 /#/account 时,它呈现 Home 而不是 Account。
import React from "react"
import ReactDOM from "react-dom"
import { BrowserRouter as Router, Route } from 'react-router-dom'
import Home from "./components/Home/Home";
import Account from "./components/Account/Account";
import Layout from "./components/Layout";
const app = document.getElementById('app');
ReactDOM.render(
<Router>
<div>
<Route exact path="/" render={() => (<div>Home</div>)} />
<Route path="/account" render={() => (<div>Account</div>)} />
</div>
</Router>,
app
)Run Code Online (Sandbox Code Playgroud)
解决这个问题的方法之一是使用<Switch>react-router-dom,您可以像这样导入它:
import {Switch} from 'react-router-dom';
Run Code Online (Sandbox Code Playgroud)
然后将你的<Route>内容包裹起来<Switch>,我认为最好将其放在"/"最后并提供默认组件,例如:
<Router>
<div>
<Switch>
<Route path="/account" render={() => (<div>Account</div>)} />
<Route exact path="/" render={() => (<div>Home</div>)} />
<Route component={NoMatch}/>
</Switch>
</div>
</Router>
Run Code Online (Sandbox Code Playgroud)
您可以在这里阅读更多相关内容<Switch>
| 归档时间: |
|
| 查看次数: |
3300 次 |
| 最近记录: |