Passer de l'objet à travers le Lien de réagir routeur
Est-il possible de passer un objet par Link
composant dans réagissent-routeur?
Quelque chose comme:
<Link to='home' params={{myObj: obj}}> Click </Link>
De la même manière que j'aimerais passer props
de la Parent
à Child
composant.
Si il n'est pas possible, quel est le meilleur moyen d'y parvenir:
J'ai une Réagir + Flux app, et j'ai rendu la table avec des données. Ce que j'essaie de faire, c'est quand je clique sur l'une des lignes il me faudrait pour certains détails composant pour cette ligne. La ligne dispose de toutes les données dont j'ai besoin j'ai donc pensé que ce serait génial si je pouvais seulement passer à travers Link
.
L'autre option serait de passer le id
de la ligne dans l'url, à lire dans le détails composant et de demander les données à partir de la boutique par ID.
Pas sûr de ce qui est le meilleur moyen de parvenir ci-dessus...
- Selon la façon dont vous récupérer vos données dans l'ensemble, je dirais que la dernière option.
Vous devez vous connecter pour publier un commentaire.
Donc ma conclusion définitive sur cette question, c'est que je n'ai pas penser correctement. Il semblait naturel juste pour passer mes données par le biais de la
Link
afin que je puisse accéder à monChild
composant. Comme Colin Ramsay mentionné il y a quelque chose qui s'appellestate
dans leLink
mais ce n'est pas la façon de le faire.Il serait bon travail, lorsque les données sont transmises par le biais de
Link
seulement si l'utilisateur clique sur quelque chose et est pris à laChild
composant.Le problème vient lorsque l'utilisateur accède à la
url
qui est utilisé dansLink
il n'existe aucun moyen pour obtenir les données.Donc la solution dans mon cas était de passer le
ID
dansLink
params et de vérifier ensuite si monStore
a les données (utilisateur accède viaLink
) et l'obtention de ces données à partir de laStore
.Ou si les données ne sont pas dans le
Store
appeler leaction
pour récupérer les données à partir de l'API.Non, vous ne pouvez pas passer un objet dans
params
, donc je serais d'accord avec vous que votre meilleur plan est de passer l'id d'un magasin, d'avoir le magasin émettent unCHANGE
événement, et de composants de requête à la banque pour info.Il est possible de passer un objet par le biais d'un Lien. Ajouter vos données dans une requête plutôt que params et stringify l'objet:
JS:
Ensuite à votre enfant composant analyser la chaîne de retour dans un objet:
to
prop sur le lien , c'est la même chose pourNavLink
pas de différence ici , le vôtre sont un tout petit peu de ça, mais de toute façon , upvoted... , mais s'il vous plaît mettre à jour votre réponse pour éviter à l'avenir qui misguides ....JSON.parse(this.props.comments)
Ce n'est pas possible, vous avez besoin de passer quelque chose qui peut être stockée dans l'URL comme un string ID. Ensuite, vous devez utiliser l'IDENTIFIANT pour effectuer une recherche de l'objet.
Vous pouvez essayer de sérialisation JSON et puis dé-sérialisation sur l'extrémité de réception.