Просто чтобы прояснить ответ ...
У вас могут быть подпапки для хранения всех страниц и компонентов, связанных с администратором:
├── components
├── global
│ └── Navbar.tsx
│ └── Footer.tsx
├── main
│ ...
│ └── Home.tsx
│ └── About.tsx
│ └── Login.tsx
│ └── Register.tsx
│ ...
├── admin
│ └── Dashboard.tsx
│ └── Manage.tsx
│ ...
│ └── Settings.tsx
И в ваших компонентах вы определяете компонент ProtectedRoute
...
export default const ProtectedRoute = ({ path: Path, component: Component, ...rest }) => (
<Route
path={Path}
render={props =>
//Custom login check to be implemented by you
logggedIn ? (
<Component {...props} />
) : (
<Redirect to="/login" />
)
}
/>
);
Тогда везде, где вы определяете свои маршруты, я полагаю App.tsx
<Route exact path="/" render={props => <Main {...props} />} />
<ProtectedRoute path="/admin" component={admin} />