Wenn ich react verwende, habe ich Komponenten, die sich auf der Seite ändern, abhängig davon, auf welcher Route der Benutzer navigiert. Gibt es eine Möglichkeit festzustellen, ob eine Komponente gerade angezeigt wird? Wenn sich der Benutzer beispielsweise auf einer Seite befindet, die nicht die Homepage ist, wird die Schaltfläche "Nach Hause gehen" angezeigt, aber ich möchte sie entfernen, wenn der Benutzer zur Startseite zurückkehrt (das ist nicht ganz so einfach, aber das ist es) die allgemeine Idee)Reagieren - kann ich herausfinden, ob eine Komponente gerade sichtbar ist
1
A
Antwort
0
Ich nehme an, Ihre Schaltflächen sind bereits untergeordnete Komponenten, wenn sie Event-Handler übergeben wurden. Vielleicht ist es an der Zeit, sie ein wenig auszufüllen.
class GoHome extends React.Component {
constructor(props) {
super(props);
}
state = {
visible: "shown"
}
// While the code here would execute just prior to render,
// which I assume would happen during page load and after url change,
// you could place it in a function the serves as a callback
// to any route change event.
componentWillMount =() => {
// Please check this regex.
var re = /\/home/i;
if (re.test(window.location.href)) {
this.setState({
visible: "not-shown"
});
};
}
// Using Google's Material Icons as an example.
render() {
let myClass = "material-icons " + {this.state.visible};
return (
<i className={myClass}>home</i>
)
}
}
CSS-Klassen.
Im Wesentlichen unterscheidet sich die CSS-Klasse der Schaltfläche je nach der aktuellen Browser-URL.
Verwandte Themen
- 1. Wie kann ich herausfinden, ob NSScrollView gerade scrollt?
- 2. Herausfinden, ob eine Spalte NICHT NULL ist
- 3. Wie kann ich herausfinden, ob ein SKTexture das Platzhalterbild ist?
- 4. In reagieren kann ich eine Komponente Kinder ohne Wrapper machen?
- 5. Wie kann ich herausfinden, ob AdMob eine Anzeige geladen hat?
- 6. Wie kann ich herausfinden, ob eine Datei geändert wurde?
- 7. Kann überprüft werden, ob eine Benachrichtigung sichtbar oder abgebrochen ist?
- 8. Wie finde ich heraus, ob ein Teil eines NSWindows gerade sichtbar ist (nicht nur bestellt)?
- 9. Kann nicht herausfinden, wie Bootstrap thumbnail Komponente
- 10. Wie ermittelt man, ob eine Arbeitsblattzelle in VBA sichtbar/sichtbar ist?
- 11. Reagieren: Ist es in Ordnung, eine Komponente durch die Requisiten an eine andere Komponente zu übergeben?
- 12. Kann nicht herausfinden, warum die Daten nicht in der Komponente
- 13. Laravel: herausfinden, ob Variable ist Sammlung
- 14. Dynamisch ein Reagieren Komponente
- 15. Reagieren Kind Komponente Zustand ist undefiniert
- 16. Wie finde ich heraus, ob ein Steuerelement gerade ungültig ist?
- 17. iOS Wie überprüfe ich, ob gerade telefoniert
- 18. Wie kann ich herausfinden, ob eine lat lange Koordinate in einem Koordinatensystem gültig ist?
- 19. Wie kann ich herausfinden, ob eine Spalte in mysql auto_increment ist?
- 20. Wie kann ich herausfinden, ob eine Batterie intern/extern von der Befehlszeile in Linux ist?
- 21. Wie kann man herausfinden, ob ein Perl-Hash multidimensional ist?
- 22. Wie kann man herausfinden, ob Bluetooth angeschlossen ist?
- 23. Wie kann ich css Stil auf reagieren Komponente
- 24. dynamisch eine weitere Komponente hinzufügen in reagieren
- 25. NHibernate: Herausfinden, ob eine Eigenschaft einem Feld zugeordnet ist
- 26. Kann ich herausfinden, wann eine Webseite zuletzt hochgeladen wurde?
- 27. Kann ich prüfen, ob ein UIAlertView gerade angezeigt wird?
- 28. Testing reagieren Komponente withing reagieren Router
- 29. Erkennen, ob eine Fusionstabelle gerade Zeilen importiert
- 30. Reagieren JS eine Komponente nach einem Klick
Welche Komponente prüfen Sie in Ihrem Beispiel auf Sichtbarkeit? Ich denke, du bist drüben denkst das .. haben unterschiedliche Komponenten für verschiedene Routen und nur in die Komponenten schreiben, die Sie in jedem sein möchten. Wenn Sie etwas bedingt anzeigen möchten, verwenden Sie einen booleschen Wert. – azium
Ich habe eine Komponente namens header, die am Anfang jeder Route angezeigt wird, es hat 3 Schaltflächen darin verschachtelt, aber auf der Homepage würde ich es lieber nur 2 der 3 – LucyViolet
'{! Location.pathname.includes ('/home ') && } ' –
azium