ときプロジェクトは、私がミスを犯しました。ヘッダー私が働いコンポーネントとして、ルートを設定し、アセンブリのヘッダーを隠しルートによれば、ヘッダ内と思いますが、何の利用Routeヘッダーラップ、無使用のwithRouterがないので、その内部は少ないthis.prop.matchより、this.propを受け付けていませんでした.location、this.prop.historyは、これら3つの属性ので、ルートがそれらを提供するために親コンポーネント、およびこの時間のあなたのヘッダーだけで普通のアセンブリです。
<プロバイダストア= {店}> <BrowserRouter> <ヘッダー/> <ルートの正確なパス= "/" コンポーネント= {ホーム}> </ルート> <ルートの正確なパス= "/ホーム" コンポーネント= {ホーム}> </ルート> <ルートの正確なパス= "/ログイン" 成分= {ログイン}> </ルート> <ルートの正確なパス= "/ディテール/:ID" コンポーネント= {詳細}> </ルート> </ BrowserRouter> </プロバイダ>
正しいアプローチは、そう任意の経路に適合するように、また正確に正確に一致せずにラップされたルートヘッダを使用することです
<プロバイダストア= {店}>
<BrowserRouter>
<ルートパス= "/" コンポーネント= {ヘッダ} />
<ルートの正確なパス= "/" コンポーネント= {ホーム}> </ルート>
<ルートの正確なパス= "/ホーム" コンポーネント= {ホーム}> </ルート>
<ルートの正確なパス= "/ログイン" 成分= {ログイン}> </ルート>
<ルートの正確なパス= "/ディテール/:ID" コンポーネント= {詳細}> </ルート>
</ BrowserRouter>
</プロバイダ>
そして、あなたはヘッダーthis.props.locationの中に入ることができ、ロジックのログインページがある場合には、ヘッダヘッド、リターン「空の文字列を表示されません。
もし(この - 1!== .props.location.pathname.indexOf( "/ログイン")){ リターン '' }