React HashRouter不渲染其他路径,仅渲染根组件“ /”

时间:2018-09-19 10:45:12

标签: javascript reactjs hash react-router-dom

我的设置:

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时,它不是为某个路径渲染组件,而是对/组件进行渲染。

即使在React Devtool中,它也显示<Route path="/">已加载,而不是<Route path="/somepath">

1 个答案:

答案 0 :(得分:2)

您可能必须添加exact才能匹配路径。将exact道具添加到Route

<Route exact path="/somepath" component={ SomePath } />