Я создаю многостраничное приложение, используя React
. У меня есть три компонента. Header
будет отображаться на всех страницах, а Page1
и Page2
должны отображаться под заголовком как разные страницы. Header
выглядит так:
class Header extends React.Component {
return (
<header component HTML code...>
{this.props.children} // this is where Page1 and Page2 will render
// depending on the URL
);
}
Компонент моего маршрутизатора выглядит так (я использую пакет react-router-dom
):
const routes = (
<BrowserRouter>
<Switch>
<Route path="/" component={Header} />
<Route path="/welcome" component={Page1} />
<Route path="/default" component={Page2} />
</Switch>
</BrowserRouter>
);
Доступ к /
отображает заголовок, но /welcome
и /default
возвращают 404. Я попытался сделать это, используя вложенные маршруты:
<BrowserRouter>
<Route component={Base}>
<Route path="/welcome" component={Page1}/>
<Route path="/landing" component={Page2}/>
</Route>
</BrowserRouter>
Это дает ошибку-
You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored
Может ли кто-нибудь указать, что я делаю не так? Есть ли лучший способ добиться того, чего я хочу здесь?