Ich erstelle Web-Anwendung mit reagieren und derzeit habe ich ein Problem beim Navigieren durch die Seiten. Nachfolgend ist die detaillierte Beschreibung. Hoffe, jemand kann mir helfen.URL-Routing-Problem bei der Verwendung von reagieren
Meine Komponente (Aufgabe) ist wie diese (vereinfachter)
class Tasks extends Component {
constructor(props) {
super(props);
this.type = props.match.params.type;
}
render(){
return (<h1>{this.type} </h1>);
}
}
Und ich tue das Routing von einem separaten Bauteil reagieren-Router-dom mit als
folgenden:
:
import {BrowserRouter as Router, Route, Switch, Redirect} from 'react-router-dom'
:
<Route path={"/tasks/:type/"} component={Tasks} />
Schließlich bin ich Rufen Sie diese Routing-Komponente aus einem meiner Navigationsmenüs auf, indem Sie die URLs wie folgt einstellen:
Wenn ich bei dieser Implementierung eine einzige URL auswähle (aus dem Navigationsmenü), funktioniert sie nicht wie erwartet. Wenn eines ausgewählt ist und dann das andere auswählt, navigiert es nicht wie erwartet. Wenn ich die URL im Browser eintippe oder die Seite aktualisiere, verweist sie auf die richtige Seite (andere URL).
Hoffe ich machte meine Frage klar: D. Kann mir jemand in die richtige Richtung zeigen, wie ich das beheben kann?
Dank
Ich würde sagen, versuchen Sie 'HashRouter' anstelle von' BrowserRouter' - es wird den Entwicklungsprozess vereinfachen, da es einfach so funktioniert, wie Sie es erwarten würden. Sobald Sie Ihre App entwickelt haben, können Sie nach 'BrowserRouter' suchen. –
'return (
{this.type}
);' - Wenn 'props.type' sich ändert, wird dies nicht aktualisiert, da Sie es nur im Konstruktor –echoed was @DimitarChristoff sagt. keine Notwendigkeit, eine Klasse überhaupt zu verwenden, basierend auf dem, was Sie haben – azium