React Router 否定路径

React Router negate path

我正在使用 react-router-dom v4 的嵌套路由功能,但有一个用例我还没有找到解决方案。

我在根组件有两个 Route

一个用于几乎整个网站,另一个用于帐户部分。

我希望能够做类似... <Route path="/^(account)" ... /> ...或类似的东西,但到目前为止我还无法让它工作。有这方面的机制吗?

根据评论进行编辑:

BrowserRouter 组件定义了两个 Route

/* 
 * Would serve as the root route for all pages that aren't under account. 
 * i.e.
 * /
 * /about
 * /some-section
 */
<Route path="/^(account)" component={SiteLayout} />

/*
 * The other would respond on...
 * /account
 * /account/forgot
 * etc.
 */
<Route path="/account" component={Account} />

希望这能更清楚地展示我正在寻找的东西。

你真的可以对所有其他路由使用 catch all 吗?

<Router>
    <Switch>
      <Route path="/account" component={Account} />
      <Route component={NotAccount} />
    </Switch>
</Router>