Ich versuche, mein Projekt von v3 von react-router
zu v4 von dem, was jetzt react-router-dom
heißt, zu portieren. Jetzt treten die Probleme auf, wenn ich eine MenuBar-Komponente habe, die völlig von der Routing-Logik getrennt ist (wie man es erwarten würde), weil sie exakt die gleichen Links zeigt, wie immer der aktuelle Pfad auch sein mag. Nun, das hat alles gut mit v3 funktioniert, aber jetzt, wenn ich NavLink
verwende, das die gleiche activeClassName
Eigenschaft hat, wird die aktive Route nicht auf der NavBar aktualisiert, nur bei der Aktualisierung. Das scheint ein bisschen dumm zu sein, also muss es einen Weg geben.React Router v4 Aktive NavLink-Route
export default @inject('ui') @observer class App extends Component {
render() {
return (
<Router>
<div className={ styles.wrapper }>
<Sidebar />
<main className={ `${styles.main} ${!this.props.ui.menuOpen && styles.closed}` }>
<Route exact path="/" component={ HomePage } />
<Route path="/signup" component={ SignUpPage } />
<Route path="/login" component={ LoginPage } />
<Route path="/about" component={ AboutPage } />
</main>
<footer className="site-footer"></footer>
</div>
</Router>
);
}
}
Die oben ist mein Haupt-App Logik und wie Sie die Routen verschachtelt sind zu sehen, aber der Router selbst wickelt sich um die gesamte Komponente.
Was sollte ich hinzufügen, damit sie wieder funktionieren? (Sie funktionieren ordnungsgemäß auf Seite aktualisieren)
Vielen Dank für die Antwort. Ich habe tatsächlich MobX vermutet, weil derzeit nur das Navigationsmenü angeschlossen ist. Ich überlegte auch, ob ich den Ort als Requisite übergeben sollte, aber ich dachte mir, dass es einen eleganteren Weg dafür geben muss, denn so muss ich es mit jeder Komponente machen, die mit Routen aktualisieren und auch Änderungen speichern soll. –
Nochmals vielen Dank, für die Antwort wie du hast mich in die richtige Richtung zeigen. Am Ende habe ich die "Beobachter" -Logik von den meisten meiner Komponenten entfernt, da sie sie nicht wirklich brauchten und die Komponenten davon befreit wurden, sich ausschließlich zu ändern, wenn MobX dies beabsichtigt. –
....... brilliant. – Tomasz