javascript - React HashRouter不渲染其他路径,仅渲染根组件 '/'

标签 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/#/ 时rootpath,它正确呈现仪表板组件,如 routes.js 中所述。文件。但是当我导航到localhost/#/somepath时,它不渲染某个路径的组件,它仍在渲染 /成分。

即使在 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/

相关文章:

javascript - Meteor.js 在选择框中加载持久选项

javascript - 向公众公开 Firebase apiKey 是否安全?

javascript - 为什么这会导致死循环?我不明白

reactjs - React Typescript - 类型参数不可分配给类型参数

javascript - 如果哈希密码在数据库中,则可以在登录时在输入框中使用该哈希密码

ruby - 在 Ruby 中返回具有修改值的散列

javascript - Vue 选择的 Prop 不适用于 v-model

javascript - 部署到AWS后无法通过Next.Js中的getInitialProps获取数据,但可以在开发环境中使用

android - Android 的 Facebook 发布 key 哈希不起作用

javascript - 如何在angularjs中使用带有输入表单的md对话框?