Restituez le composant React Router en cliquant vous-même sur le lien.
P粉295728625
P粉295728625 2023-07-27 22:31:16
0
1
517
<p>J'utilise<code>react-router-dom</code> <h1>code</h1> <pre class="brush:php;toolbar:false;"><NavLink to="/pathOne" className="ripple">label1</NavLink> <NavLink to="/pathTwo" className="ripple">label2</NavLink></pre> <h1>Question</h1> <p>Lorsque vous cliquez sur un lien ou un autre, le composant Route s'affiche comme prévu. Cependant, si "/pathOne" est actif et que je clique à nouveau dessus, rien ne se passe. </p><p>Existe-t-il un moyen de forcer le rendu d'un élément de route en cliquant sur un lien actif ? </p><p>Je pourrais actualiser la page entière si l'attribut reloadDocument était défini, mais ce n'est pas une option viable. </p><p><code></code></p>
P粉295728625
P粉295728625

répondre à tous(1)
P粉432906880

Si tout ce que vous voulez vraiment, c'est que le composant d'itinéraire soit restitué à chaque fois que vous cliquez sur le lien vers son itinéraire, il suffit alors que ces composants appellent la useLocation hook. Each time the link is clicked a new location object reference is created. The new location référence d'objet pour déclencher le rendu du composant qui l'utilise.

Exemple :

const PathOne = () => {
  useLocation();

  useEffect(() => {
    console.log("PathOne rerender");
  });

  return <h1>PathOne</h1>;
};

const PathTwo = () => {
  useEffect(() => {
    console.log("PathTwo rerender");
  });

  return <h1>PathTwo</h1>;
};
function App() {
  return (
    <div className="App">
      <NavLink to="/pathOne" className="ripple">
        label1
      </NavLink>
      <NavLink to="/pathTwo" className="ripple">
        label2
      </NavLink>
      <Routes>
        <Route path="/pathOne" element={<PathOne />} />
        <Route path="/pathTwo" element={<PathTwo />} />
      </Routes>
    </div>
  );
}

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal