2017-10-15 14 views
0

反応ルータとルーティングパスに問題があります。同じルートパスに異なるコンポーネントがヒットする方法

私は、リンクのカップルを持っている

  1. localhostを言う:3000/
  2. はlocalhost:3000/B
  3. はlocalhost:3000/C

と私のルートが設定されています次のようにしてください:

<Route exact path="/:cat" component={Post} /> 

私の問題はいつでも私は3つのURLの1つ、すなわち1 - > 3に行き、すべてが基準を満たしているので(すなわち、 path="/:cat")。私はそれが1つのルートと呼ばれるように各パスをレンダリングしないと仮定して正しいと思いますので、 "状態"が変更されていないのでレンダリングする必要はありませんか?

答えて

3

その1つのルートと一致するパス(/ aまたは/ b)は、そのPostコンポーネントをレンダリングします。

<Route exact path="/:cat" component={Post} />

このルートはあなたから始まり/と、このコンポーネントがthis.props.routeParams.cat内の実際のURLを持つことになり、各URLのポスト・コンポーネントをレンダリングできるようになります。

ポストコンポーネントでこの小道具を使用して、適切な子コンポーネントを呼び出すことができます。 ie this.props.routeParams.cat = aを確認してから、<ComponentA />に電話してください。

+0

ありがとうございました!どのように動作するのかちょっと混乱しましたが、今は動作しています。 –

関連する問題