Maison > interface Web > js tutoriel > Comment transmettre des accessoires à une nouvelle vue dans React Router ?

Comment transmettre des accessoires à une nouvelle vue dans React Router ?

Barbara Streisand
Libérer: 2024-11-01 06:10:02
original
358 Les gens l'ont consulté

How to Pass Props to a New View in React Router?

Passer des accessoires dans Link React-Router

Problème :

Dans une application React-Router, un composant Link est ne pas transmettre les propriétés à une nouvelle vue, bien que les propriétés soient incluses dans les paramètres du lien.

Solution :

Code obsolète (v1) :

<Link to="ideas" params={{ testvalue: "hello" }}></Link>

<Route name="ideas" handler={CreateIdeaView} />
Copier après la connexion

Code à jour (v4/v5) :

// Using query
<Link to={{ pathname: `/${this.props.testvalue}`, query: { backUrl } }} />

// Using search
<Link to={{ pathname: `/${this.props.testvalue}`, search: `?backUrl=${backUrl}` }} />

<Route name="ideas" path="/:testvalue" handler={CreateIdeaView} />
Copier après la connexion

Utilisation :

  • La propriété to du prend un objet avec les propriétés suivantes :

    • pathname : Le chemin de la nouvelle vue.
    • params : Un objet contenant les propriétés à transmettre à la nouvelle vue.
  • Le composant Route doit avoir une propriété path qui correspond à la valeur du paramètre dynamique dans la propriété to.

Exemple de composant fonctionnel :

<code class="js">const CreatedIdeaView = () => {
  const { testvalue } = useParams();
  const { query, search } = useLocation();
  console.log(testvalue, query.backUrl, new URLSearchParams(search).get('backUrl'));
  return <span>{testvalue} {backurl}</span>;
};</code>
Copier après la connexion

Remarque : Le code ci-dessus utilise les hooks de React-Router-dom.

Exemple de code mis à jour :

<code class="js">const App = () => {
  return (
    <React.Fragment>
      <Link to={{ pathname: '/ideas/:itemID', itemID: 222, item: { okay: 123 } }}>Ideas</Link>
      <Switch>
        <Route exact path="/ideas/:itemID/" component={Ideas} />
        <Route path="/hello/:WORLD?/:thing?" component={World} />
      </Switch>
    </React.Fragment>
  );
};</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal