Je suis assez nouveau dans React en général, donc je m'excuse à l'avance s'il existe une solution simple.
J'ai deux composants:
Tableau de bord
--Sidebar (appelé dans le tableau de bord)
J'ai un chemin mis en place dans le tableau de bord et des liens dans ma barre latérale. Lorsque je clique sur un lien, l'URL change, mais le tableau de bord ne s'affiche pas à nouveau, donc il ne change que lors d'une actualisation de page. Ma question est la suivante: y a-t-il un moyen via react-router que je puisse configurer mon tableau de bord pour qu'il soit à nouveau rendu en cliquant sur un lien dans la barre latérale?
Importer
<BrowserRouter> <Link to="/" className="nav-link" onClick={this.navigation} > Link</Link> <Link to="/profile" className="nav-link" onClick={this.navigation} > Link</Link> <Link to="/project" className="nav-link" onClick={this.navigation} > Link</Link> <BrowserRouter>
Composant du tableau de bord:
<DashboardSidebar /> <BrowserRouter> <div> <Route exact path="/" component={DashboardLanding} /> <Route path="/profile" component={ViewUsers} /> <Route path="/project" component={ViewProjects} /> </div> </BrowserRouter>
Composant de la barre latérale du tableau de bord
import { BrowserRouter, Route, Link } from 'react-router-dom';
3 Réponses :
Pas besoin d'un autre dans votre composant SideBar. enveloppez-le avec un div ou peut-être un fragment.
J'ai déplacé la barre latérale au-dessus du tableau de bord comme vous l'avez suggéré, malheureusement, le composant ne rend toujours pas
Avez-vous toujours deux
Oui, doivent-ils tous les deux être imbriqués sous le même
Non, vous n'avez besoin que de vos balises
Lorsque je supprime les balises
Ouais comme je l'ai dit, c'est un peu difficile de poster des codes dans les commentaires, je vais juste partager l'essentiel avec vous
gist.github.com/prithweedas/2ceffa8d58fb9dbc4e6c3543ff024ea6 vers le lien gtml
Merci pour l'essentiel qui était vraiment utile, mais cela renvoie une nouvelle erreur.
Ouais c'était mon mauvais, j'ai oublié ça, mis à jour l'essentiel, si
Vous êtes le bienvenu, si cela vous a aidé, veuillez voter pour et accepter la réponse pour aider les autres à identifier la bonne réponse
Vous ne devez pas utiliser en dehors d'un
Un
Voici mon composant de tableau de bord: gitlab.mi.hdm-st Stuttgart.de/eo023/client-management-system/bl ob /… a> Composant de la barre latérale gitlab.mi.hdm-st Stuttgart.de/eo023/client-management-system/bl ob /…
<>>
cette syntaxe ne fonctionne pas pour vous, utilisez simplement un
Peut-être que le problème est dans: dernière ligne de code BrowserRouter vous avez une balise ouverte au lieu de fermer.
La deuxième solution peut être d'essayer de changer le navigateur BrowserRouter avec la balise div.
Désolé, le premier problème vient uniquement de ma faute en copiant et en collant un code plus précis! J'ai également fait comme @prithweedas suggéré ci-dessous et déplacé tout le code du composant de la barre latérale vers mon tableau de bord, cependant, le composant ne se rend toujours pas.
BrowserRouter devait contenir le composant DashboardboardSidebar et le tout enveloppé dans un seul enfant.
<BrowserRouter> <> <DashboardSidebar /> <div> <Route exact path="/" component={DashboardLanding} /> <Route path="/profile" component={ViewUsers} /> <Route path="/project" component={ViewProjects} /> </div> </>