2017-08-22 8 views
1

では反応するルータ(4.1.2)私は、次のルートがレンダリングされています:this.props.match.params.organisationId非正確なルートの一致にルートのparamを取得

これによって期待通り

<Route path="/organisations/:organisationId/profiles" component={MapContainer} /> 

は私MapContainer内部私はorganisationIdを取得MapContainer成分はまた、予想されるように、これは動作しますが、matchプロップprofileIdが含まれていない /organisations/:organisationId/profiles/:profileId

ような任意のサブ経路上にレンダリングされますただorganisationIdです。それはルートのためにそれが最初に見つけた "マッチ"なので、なんらかの意味があります。しかし、正確ではないルートにマッチしたときにMapContainerのprofileIdを取得する方法はありますか?

<Route exact path="/organisations/:organisationId/profiles" component={MapContainer} /> 
<Route exact path="/organisations/:organisationId/profiles/:profileId" component={MapContainer} /> 

ではなく、それはそれを行うための正しい方法であることを確認してください:exactプロパティを持つ2つの異なる経路をレンダリング

は私のユースケースのために働くようです。

これに関するご提案は非常に役に立ちます。

答えて

2

ではなく、これを使用します。

<Route path="/organisations/:organisationId/profiles/:profileId?" component={MapContainer} /> 

:profileId?は、パラメータがオプションであることを意味します。したがって、これらの2つのパスに一致します:

/organisations/apple/profiles 
/organisations/apple/profiles/1 
関連する問題