2017-10-19 24 views
0

リアクタルータv4スイッチコンポーネントに問題が発生しました。私はこの問題の関連スレッドを見つけることができなかったことに非常に驚いています。一般的なスイッチは、次のようになります。「/」私は家のコンポーネントを取得し、「/パス1」に私はPath1Componentを取得し、パス上の「/ foobarに:リアクタルータv4が一致する子ルートを防止する

<Switch> 
    <Route path='/path1' component={Path1Component}/> 
    <Route path='/path2' component={Path2Component}/> 
    <Route exact path='/' component={Home}/> 
    <Route component={NotFound}/> 
</Switch> 

これは私が道にいる時ということを意味し、 '私はNotFoundコンポーネントを取得します。そして、それは完全に細かいです。

私は '/ path1/foobar'ルート上にいるときにもPath1Componentを取得します。この動作はすべての場合に正しいわけではありません。今回は、 '/ path1'ルートのネストされたルートは必要ありません。 '/ path1/foobar'は、 '/ path1'の後にNotFoundコンポーネントを返す必要があります。

この問題を解決するにはどうすればよいでしょうか?私はちょうどすべてのパスに正確に追加することができますが、それはコードをオーバーフローされませんか?私はそれがデフォルトでなければならないと感じますが、そうではありません。

hereのようにリアクタ・ルータv4のドキュメントでさえ、私はこの問題を見る - ここで '/ will-match/foo'もマッチします。あなたの考えは?

答えて

0

hereというディスカッションがありますが、簡略化すると、は既存のコードを破損します。これを変更する場合は、 'path1/child1'を実行せずに子ルートを照合する場合は、exact={false}を実行する必要があります。

関連する問題