Ich verwendete localStorage in meiner WebApp, um Daten auf der Client-Seite zu speichern. Aber wenn ich versucht habe, die App isomorph zu machen, verursacht dies ein Problem. Da der Knoten keine Browser-Umgebung ist, kann er keine Objekte wie 'Fenster', 'localStorage' usw. definieren. Wie löse ich dieses Problem?Wie vermeidet man den Fehler "localStorage ist nicht definiert" auf dem Server in ReactJS isomorphe App?
7
A
Antwort
6
Sie einen Scheck verwenden könnten, ob der Code auf dem Server oder auf der Client-Seite durch Überprüfen, ob Modul 'undefined'
nicht ausgeführt wird:
var isNode = typeof module !== 'undefined'
dann fortfahren nur dann ausgeführt, diesen Code auf dem Client Seite:
if(!isnode){
//use the local storage
}
Sie sollten jedoch schon immer überprüfen, ob Storage
definiert, bevor Sie da nicht alle Browser es unterstützen:
if(typeof(Storage) !== "undefined"){
//use the local storage
}
0
Standard hat specific support für solche Probleme.
Sie müssen lediglich einen Kommentar hinzufügen, der den Standard darüber informiert, dass eine Variable vom globalen Gültigkeitsbereich bereitgestellt wird.
// MyStuff.js
/* global localStorage */
// Use localStorage below with no linter errors
Verwandte Themen
- 1. Reactjs: Dokument ist nicht definiert
- 2. localStorage Objekt ist nicht definiert in IE
- 3. ReactJs - Mehrere Komponenten - Fehler: Uncaught ReferenceError: require ist nicht definiert
- 4. React App in isomorphe App umwandeln?
- 5. Node.js & JQuery: Fehler "ReferenceError: $ ist nicht definiert". Wie verwende ich jquery mit Knoten auf dem Server?
- 6. erfordern nicht gebündelt JS definiert Fehler reactjs
- 7. ReactJS: Uncaught ReferenceError: require ist nicht definiert
- 8. isomorphe holen Beitrag kann Körper auf Server
- 9. Erste Typeerror: this.props ist nicht definiert, auf ReactJs
- 10. ReactJS - Uncaught ReferenceError: Funktion ist nicht definiert
- 11. Isomorphe ReactJS - wie Code für Server-Seite und Client-Seite zu teilen?
- 12. + webpack: ‚process.env‘ nicht definiert ist
- 13. Versand ist nicht definiert in redux mit reactjs
- 14. WPF-Etiketteninhalt: Wie vermeidet man den Verweis auf Alt-Taste?
- 15. Wie vermeidet man den "&" Operator in Strings
- 16. Flash-App nicht gut auf dem Server
- 17. Wie Übergeben Sie Cookies über Node-Fetch in isomorphe App?
- 18. "dies" ist in der Kartenfunktion nicht definiert. Reactjs
- 19. Wie überprüft man den Variablenwert, wenn dieser nicht definiert ist?
- 20. $ timeout definiert Fehler nicht in AngularJS App
- 21. ReactJS - Elementtyp ist ungültiger Fehler
- 22. Wie löst man "ReferenceError: $ ist nicht definiert"?
- 23. LocalStorage Fehler
- 24. Java BuilderTestPattern - Wie vermeidet man den Standard?
- 25. Wie vermeidet man Dialyzer-Fehler für Protokolle?
- 26. SSL ist nicht auf dem Server aktiviert
- 27. Relay App: Wie untersucht man das Schema auf dem Server?
- 28. Wie vermeidet man den folgenden wiederholten Code?
- 29. App ist nicht definiert in AppBuilder
- 30. Web-Server auf dem App-Server
Guter Punkt! Ich verwende 'browserStorage = (typeof localStorage === 'undefined')? null: localStorage; 'und dann in der Komponente check' browserStorage'. Ich frage mich, ob es eine bessere Problemumgehung gibt. – jvalen