React Router DOM — 如何在每个页面都包含一个导航栏?

React Router DOM — How to include a navigation bar on every page?

我的 App.js 组件中有这段代码:

render() {
        return (
            <div>
                <Navbar/>
                <BrowserRouter>
                    <Switch>
                        <Route exact path="/" component={Home}/>
                        <Route path="/about" component={About} />                         
                        <Route path="*" render={() => <Redirect to="/" />} />
                    </Switch>
                </BrowserRouter>
            </div>
        );
    }

现在我尝试在我的其他组件之一中包含一个 Link 组件,但我发现 BrowserRouter 必须是 App.js 组件的根元素,才能做到这一点上班。现在我想知道如果我仍然想在每个页面上都包含导航栏,我将如何让它成为路由元素。

您应该可以将它放在 <Switch> 组件之外。

<BrowserRouter>
    <div>
        <Navbar/>
        <Switch>
            <Route exact path="/" component={Home}/>
            <Route path="/about" component={About} />                         
            <Route path="*" render={() => <Redirect to="/" />} />
        </Switch>
    </div>
</BrowserRouter>