私はルーティングのために反応ルータv4を使用しています。私のアプリのレイアウトは、エンドユーザー向けのホームページがあります。明らかにホームページのパスは/
です。ダッシュボードセクションもあります。 1つは管理者用、1つはエージェント用、もう1つは所有者用です。彼らは上から下に独自のレイアウトを持っています。ホームページのために働いています。しかし、私がURL /admin/dashboard
を押すと、admin dasboardのメインページは表示されません。同じホームページが表示されます。ここで反応ルータの複数のページv4
は私が 以下でしたので、私は管理者のダッシュボードに今別のレイアウトを完全に新しいページのAppコンポーネントのない子供が欲しい
const AsyncRoute = ({ load, ...others }) => (
<Route
{...others} render={(props) => (
<Bundle load={load} {...props} />
)}
/>
);
app.js
const render = messages => {
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>,
document.getElementById("app")
);
};
import Routes from 'routes';
class App extends React.Component {
render() {
return (
<div>
<Navbar userForm={this.handleDialog} />
<Routes />
</div>
);
}
}
routes.js
function Routes({ location }) {
return (
<Switch location={location}>
<AsyncRoute exact path="/" load={loadHomePage} />
<AsyncRoute exact path="/features" load={loadFeaturePage} />
<AsyncRoute path="" load={loadNotFoundPage} />
</Switch>
);
}
をやっていることです
class AdminDashboard extends React.Component {
render() {
return (
<div>
<TopNavigation />
<SideNavigation />{/* it will have link */}
<Routes /> {/* it will display page */}
</div>
);
}
}
function AdminRoutes({ location }) {
return (
<Switch location={location}>
<AsyncRoute
exact
path="/admin/dashboard"
load={loadAdminDashboardPage}
/>
<AsyncRoute exact path="/commission" load={loadCommissionPage} />
<AsyncRoute path="" load={loadNotFoundPage} />
</Switch>
);
}
私がURLをヒットしたとき/admin/dashboard
私はAdminダッシュボードのページではなく、AdminDashboardの子である /commission
と同じアプリケーションページを取得します
どのように私のルータを異なるレイアウトで動作させることができますか?ユーザに応じMeteorchefベース、専用配線から