誰かが違いを説明できますか
<Route exact path="/" component={Home} />
そして
<Route path="/" component={Home} />
「正確」の意味がわかりません
誰かが違いを説明できますか
<Route exact path="/" component={Home} />
そして
<Route path="/" component={Home} />
「正確」の意味がわかりません
回答:
この例では、実際には何もありません。exact
あなたは似た名前を持つ複数のパスを持っている場合paramが戦場に出ました。
たとえばUsers
、ユーザーのリストを表示するコンポーネントがあるとします。また、CreateUser
ユーザーの作成に使用されるコンポーネントもあります。のURL CreateUsers
はの下にネストする必要がありますUsers
。したがって、セットアップは次のようになります。
<Switch>
<Route path="/users" component={Users} />
<Route path="/users/create" component={CreateUser} />
</Switch>
ここで問題http://app.com/users
となるのは、ルーターに移動すると、定義されたすべてのルートを通過し、最初に見つかった一致を返すことです。したがって、この場合、Users
最初にルートを見つけてから返します。すべて良い。
しかし、に行った場合http://app.com/users/create
、定義されたすべてのルートを再び通過し、最初に見つかった一致を返します。Reactルーターは部分的に一致するため、/users
部分的に一致/users/create
するため、Users
ルートが誤って再度返されます。
exact
paramがルートの部分一致検索を無効にし、パスが現在のURLに完全に一致する場合、それは唯一のルートを返すことを確認します。
したがって、この場合は、ルートのみを追加exact
してUsers
、次のものにのみ一致するようにし/users
ます。
<Switch>
<Route exact path="/users" component={Users} />
<Route path="/users/create" component={CreateUser} />
</Switch>
exact
私の意見ではデフォルトにする必要があります
/admin//users
、管理コンポーネントと/admin/users/create
ルートコンポーネントにある場合はどうでしょうか??? 私は現在この状況にあり、一般的なexact
解決策は適切に機能しません。
つまり、アプリのルーティングに複数のルートが定義されている場合、Switch
このようなコンポーネントで囲まれます。
<Switch>
<Route exact path="/" component={Home} />
<Route path="/detail" component={Detail} />
<Route exact path="/functions" component={Functions} />
<Route path="/functions/:functionName" component={FunctionDetails} />
</Switch>
次にexact
、そのパスが別のルートのパスにも含まれているルートにキーワードを設定する必要があります。たとえば、ホームパス/
はすべてのパスに含まれているため、exact
で始まる他のパスと区別するためのキーワードが必要/
です。理由も/functions
パスに似ています。/functions-detail
または/functions/open-door
を含む別のルートパス/functions
を使用する場合exact
は、/functions
ルートに使用する必要があります。
こちらをご覧ください:https : //reacttraining.com/react-router/core/api/Route/exact-bool
完全一致:ブール値
trueの場合、パスが完全に一致する場合にのみ一致しlocation.pathname
ます。
**path** **location.pathname** **exact** **matches?**
/one /one/two true no
/one /one/two false yes
最短の答えは
ぜひお試しください。
<switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/shop" component={Shop} />
</switch>
exact
属性/小道具の意味を説明するものではないので、確かに「答え」ではありません。OPに実際にあるかどうかわからない問題の解決策を提供するのではなく、実際に尋ねられる質問に対処するようにしてください。