Maison > interface Web > js tutoriel > Comment naviguer par programme dans React Router sans mixins ?

Comment naviguer par programme dans React Router sans mixins ?

Linda Hamilton
Libérer: 2024-12-19 21:16:09
original
894 Les gens l'ont consulté

How to Programmatically Navigate in React Router without Mixins?

Navigation programmatique dans React Router sans mixins

React Router permet une navigation transparente dans le contexte, mais comprendre son utilisation peut prêter à confusion. Explorons comment naviguer par programme sans utiliser de mixins.

React Router fournit l'objet d'historique à travers le contexte, offrant un accès aux méthodes push et replace pour la manipulation. Cependant, avec les progrès de React, vous disposez de plusieurs options de navigation programmatique :

1. Utilisez le withRouter HOC (React Router 6 non pris en charge) :

Le withRouter HOC injecte l'objet d'historique dans les accessoires du composant, permettant un accès direct aux méthodes de navigation.

import { withRouter } from 'react-router-dom';

const Button = withRouter(({ history }) => {
  const handleClick = () => { history.push('/new-location'); };
  return <button onClick={handleClick}>Click Me!</button>;
});
Copier après la connexion

2. Rendre une route sans chemin (React Router 6 non pris en charge) :

Rendu un composant Route sans chemin, qui correspondra toujours à l'emplacement actuel et transmettra également l'accessoire d'historique.

import { Route } from 'react-router-dom';

const Button = () => {
  return (
    <Route render={({ history }) => {
      const handleClick = () => { history.push('/new-location'); };
      return <button onClick={handleClick}>Click Me!</button>;
    }} />
  );
};
Copier après la connexion

3. Utiliser le contexte (complexe et obsolète) :

Cette approche nécessite une compréhension approfondie du contexte de React et doit être utilisée avec prudence. Vous devez définir un type de contexte de composant pour accéder à la prop historique.

import React from 'react';

const Button = (props, context) => {
  const handleClick = () => { context.history.push('/new-location'); };
  return <button onClick={handleClick}>Click Me!</button>;
};

Button.contextTypes = {
  history: React.PropTypes.shape({
    push: React.PropTypes.func.isRequired
  })
};
Copier après la connexion

Pour la plupart des scénarios, les options 1 et 2 offrent une simplicité et sont recommandées.

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