2017-12-07 29 views
1

私はルート・コンポーネントにちょっと残っています。私は自分のパスで、この二つの経路を持っている想像:タイプ別にリアクタ・ルータのパス・パラメータの値を除外します

<Route path='/person/add' exact component={PersonForm}/> 
<Route path='/person/:id' exact component={PersonView}/> 

/人/を追加表示する必要があり、私は新しい人を作成することができ、フォーム
/人/:IDが与えられたと人を示さなければなりませんid。

問題>>私は/人に移動した場合は追加/それはまた、/人/のコンポーネントが表示されます:「:ID」文字列「追加」が有効ですので、IDを。

これを避ける方法はありますか?たとえば、次のように伝えます。idは数字でなければなりませんか?

+1

'/ person/add'は'/person'にする必要があります。パラメータがない状態は追加状態であり、編集のために再利用できます。それは意味をなさない:p –

+0

これは興味があるかもしれないhttps://stackoverflow.com/a/35604855/1915893 –

+1

@AluanHaddadそれは本当に私がそれをどのように解決したのですが、それでも解決策があれば質問していました。ありがとう! – Wannes

答えて

2

可能な解決策を見つけました。スイッチをルートの周りに使用できます。その後、一致する最初のものにのみ一致します。

<Switch> 
    <Route path='/person/add' exact component={PersonForm}/> 
    <Route path='/person/:id' exact component={PersonView}/> 
</Switch> 
関連する問題