2017-08-20 14 views
3

私はApp.jsコンポーネントでこのコードを持っている:React Router DOM - すべてのページにナビゲーションバーを含めるにはどうすればいいですか?

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

は今、私は私の他の構成要素の一つでリンクコンポーネントを含めることを試みたが、私はBrowserRouterがのルート要素なければならないことを考え出しましたApp.jsコンポーネントが動作するようにします。ここで、ナビゲーション・バーをすべてのページに含めるには、どのようにルート・エレメントにするのかと思います。

答えて

3

コンポーネントを<Switch>コンポーネントの外に置くだけで済みます。私自身のプロジェクトを見てみると

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

は、あなたがBrowserRouter'は、単一の子を期待 ''以来Navbar'と 'Switch'周りラッピング' div'が必要と思われるルータを反応させます。編集された答え。 – ivarni

+0

これは決して心に来なかった...ありがとう。 –

関連する問題