2017-10-15 5 views
0

Je rencontre un problème avec le routeur de réaction et son chemin de routage.Comment faire pour que le même chemin d'accès touche différents composants

J'ai quelques liens, dire

  1. localhost: 3000/a
  2. localhost: 3000/b
  3. localhost: 3000/c

et mon itinéraire est défini en tant que tel:

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

Mon problème est que chaque fois que Je vais à l'une des trois URL, c'est-à-dire 1 -> 3, il ne chargera que la page 1, car tous répondent aux critères (c.-à-d. path="/:cat"). Ai-je raison de supposer qu'il ne rendra pas chaque chemin comme ils sont désignés comme une route, d'où il n'a pas besoin d'être rendu car l'état n'a pas changé?

Répondre

3

Son chemin et tout chemin correspondant (/ a ou/b) rendront ce composant Post.

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

Cette route vous permettra de composants après le rendu pour chaque URL, qui commence à partir/et ce composant sera l'URL réelle à l'intérieur this.props.routeParams.cat.

Vous pouvez utiliser cet accessoire dans votre composant de publication pour appeler le composant enfant approprié. i.e Vérifiez si this.props.routeParams.cat = a, puis appelez <ComponentA />.

+0

Merci beaucoup! J'étais un peu confus quant à la façon dont cela fonctionne, mais je l'ai fonctionné maintenant. –