React Router Dom 巢外的一条路线
React Router Dom one route outside of nest
希望这有一个简单的答案,但我还没有找到其他人问这个:我只是想用一个位于包装器之外的路由(在本例中为登录页面)创建一个路由层次结构,以及位于所述包装器内的所有其他路线(具有 header/sidebar/etc)。我正在使用 react 16.0.0 + react-router-dom 4.2.2 而我徒劳的尝试是
import React from 'react';
import { Switch, Route } from 'react-router-dom';
import Wrapper from './components/common/Wrapper';
import App from './components/App';
import HomePage from './components/Home';
import SignInUpPage from './components/SignInUp';
import DistrictsPage from './components/Districts';
import StudioPage from './components/Studio';
import CollectionsPage from './components/Collections';
export default (
<Wrapper>
<Route path="/account" component={SignInUpPage} />
<App>
<Switch>
<Route exact path="/" component={HomePage} />
<Route path="/districts" component={DistrictsPage} />
<Route path="/studio" component={StudioPage} />
<Route path="/collections" component={CollectionsPage} />
</Switch>
</App>
</Wrapper>
);
但显然这只是在登录下方呈现应用程序组件,如果我将应用程序组件嵌套在 Switch 中,结果相同。非常感谢您的帮助!
只有当 /account 不匹配时,您才能呈现 App 组件:
<Wrapper>
<Switch>
<Route path="/account" component={ SignInUpPage } />
<Route path="/" component={ App } />
</Switch>
</Wrapper>
...然后将其他路由移动到 App 组件中:
App.js
<Switch>
<Route exact path="/" component={ HomePage } />
<Route path="/districts" component={ DistrictsPage } />
<Route path="/studio" component={ StudioPage } />
<Route path="/collections" component={ CollectionsPage } />
</Switch>
我从你的代码中假设 Wrapper 是包装所有东西而 App 只是包装嵌套路由。如果我理解有误,你可以换个角度。
希望这有一个简单的答案,但我还没有找到其他人问这个:我只是想用一个位于包装器之外的路由(在本例中为登录页面)创建一个路由层次结构,以及位于所述包装器内的所有其他路线(具有 header/sidebar/etc)。我正在使用 react 16.0.0 + react-router-dom 4.2.2 而我徒劳的尝试是
import React from 'react';
import { Switch, Route } from 'react-router-dom';
import Wrapper from './components/common/Wrapper';
import App from './components/App';
import HomePage from './components/Home';
import SignInUpPage from './components/SignInUp';
import DistrictsPage from './components/Districts';
import StudioPage from './components/Studio';
import CollectionsPage from './components/Collections';
export default (
<Wrapper>
<Route path="/account" component={SignInUpPage} />
<App>
<Switch>
<Route exact path="/" component={HomePage} />
<Route path="/districts" component={DistrictsPage} />
<Route path="/studio" component={StudioPage} />
<Route path="/collections" component={CollectionsPage} />
</Switch>
</App>
</Wrapper>
);
但显然这只是在登录下方呈现应用程序组件,如果我将应用程序组件嵌套在 Switch 中,结果相同。非常感谢您的帮助!
只有当 /account 不匹配时,您才能呈现 App 组件:
<Wrapper>
<Switch>
<Route path="/account" component={ SignInUpPage } />
<Route path="/" component={ App } />
</Switch>
</Wrapper>
...然后将其他路由移动到 App 组件中:
App.js
<Switch>
<Route exact path="/" component={ HomePage } />
<Route path="/districts" component={ DistrictsPage } />
<Route path="/studio" component={ StudioPage } />
<Route path="/collections" component={ CollectionsPage } />
</Switch>
我从你的代码中假设 Wrapper 是包装所有东西而 App 只是包装嵌套路由。如果我理解有误,你可以换个角度。