【发布时间】:2019-09-12 10:09:57
【问题描述】:
我的应用如下所示,我有两个组件 - App 和 Home
我可以从 App 转到 Home,但在 Home 组件中还有另外两条路线 - Profile 和 Quotes。
单击配置文件和引号的链接时,我没有收到任何异常,也没有加载该组件。
但是,如果我将路由移动到 App 组件,那么它会加载 profile 和 quotes 就好了。
这可能是什么问题。请指导。
App 组件在下方 -
import React from 'react';
import { Route, Link, Switch } from 'react-router-dom'
class App extends React.Component {
state = { //...some vals }
render() {
return (
<div>
<Link to='/home'>Home</Link>
<Switch>
<Route exact path='/home' component={Home}/>
</Switch>
</div>
)
}
}
export default App
Home 组件在下面 -
import React, { Fragment } from 'react';
import { Route, Link, Switch } from 'react-router-dom'
import Profile from './Profile';
import Quotes from './Quotes';
class Home extends React.Component {
state = { //...some vals }
render() {
return (
<Fragment>
<Link to='/profile'>Profile</Link>
<Link to='/quotes'>Quotes</Link>
<Switch>
<Route exact path='/profile' component={Profile}/>
<Route exact path='/quotes' component={Quotes}/>
</Switch>
</Fragment>
)
}
}
export default Home
在index.js 中如下-
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { BrowserRouter } from 'react-router-dom'
ReactDOM.render(
<BrowserRouter><App /></BrowserRouter>,
document.getElementById('root')
);
【问题讨论】:
-
您可以查看我发布的答案。添加了一个代码框示例以更好地理解。
-
如果 app 中除了 home 之外别无其他,则不需要
<switch>。而不是使用两个<router>,您可以使用多个带有match.url的开关。 stackoverflow.com/questions/49208310/…
标签: reactjs react-router