我的设置:
routes.js
const Router = () => (
<Switch>
<Route path="/" component={ Dashboard } />
<Route path="/somepath" component={ SomePath } />
</Switch>
);
index.js
<HashRouter>
<App />
</HashRouter>
app.js:
lass App extends Component {
render() {
return (
<div className="main-app">
<Header />
<div className="page__container">
<Router />
</div>
<Footer />
</div>
);
}
}
问题是,当我导航到
localhost/#/
根路径时,它可以正确呈现routes.js
文件中提到的Dashboard组件。但是,当我导航至localhost/#/somepath
时,它不呈现某路径的组件,而是stil呈现/
组件。即使在
React Devtool
中,它也显示<Route path="/">
已加载,而不是<Route path="/somepath">
最佳答案
您可能必须添加exact
来匹配路径。将exact
道具添加到Route
<Route exact path="/somepath" component={ SomePath } />
关于javascript - React HashRouter不渲染其他路径,仅渲染根组件“/”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52404051/