React Routerを使用して現在のURLのパス名を取得する最も効率的な方法は(browserHistory
を使用しています)さまざまな情報源には不一致があるようです。以下は私のプロバイダとルートの抜粋です:React Router w/browserHistoryで現在のルートのパス名を取得しています
ReactDOM.render(
<Provider store={Store}>
<Router history={browserHistory}>
<Route path="/tools/customer-lookup" component={CustomerLookupApp} />
<Route path="/tools/customer-lookup/profile/:id" component={CustomerLookupProfileWrapper} />
<Route path="/tools/customer-lookup/profile/:id/store/:storeid" component={CustomerLookupStoreProfileWrapper} />
<Route path="/tools/customer-lookup/profile/:id/store/:storeid/transaction/:transid" component={CustomerLookupStoreItemsWrapper} />
</Router>
</Provider>,
document.getElementById('customer-lookup-main'));
});
は、さまざまなコンポーネントでthis.props.location.pathname
をログに記録しようとしましたが、常に未定義アップします。 this.context
と同じこと。
アドバイスありがとうございます。
ルートのパスが少し冗長であることを除いて、コードは正しいようです。子ルートを使用して 'path'の長さを減らすことができます。 debugging.red –
@JasonXuの完全なコードを投稿することができます。ただし、子ルートに移動するときに、あるコンポーネントを別のコンポーネントに入れ子にするのを避けるようにしています。むしろルート(私は彼らがひどく冗長に見えることに同意する)は、単一ページアプリケーションの全く異なるビューにリンクしており、必ずしも親コンポーネントを再利用しているわけではありません。 **その**を達成するためのより良い方法があり、まだルートを巣立たせているなら、それについて聞きたいです。 – Jose