2017-07-07 1 views
1

Ich versuche, das Dokument in einer React Vr App zuzugreifen. Die App wurde mit dem react-vr-cli erstellt. Wenn ich versuche, auf die Seite zuzugreifen, erhalte ich den folgenden Fehler.ReactVr - Dokument ist nicht definiert

document is not defined 
+0

Das ist seltsam. Kannst du dein Projekt irgendwo posten? –

+0

Entschuldigung für die späte Antwort. Ich habe herausgefunden, was falsch ist. Das Dokument war in einer selbstaufrufenden Funktion und aus irgendeinem Grund war der Umfang der Funktion nicht das Fenster, sein DedicatedWorkerGlobalScope. –

+0

Hallo, habe ich noch einmal überprüft, das Problem war nicht selbst aktivierende Funktion. Wenn ich ein Skript importiere, wird das Skript in DedicatedWorkerGlobalScope anstelle von window ausgeführt. –

Antwort

2

Die Reaktion VR-Instanz in einem Web-Arbeiter ausgeführt wird, das ist, warum Sie DedicatedWorkerGlobalScope statt window bekommen und warum es keine globale document.

So funktioniert React VR und deshalb gibt es ein react-vr-web Paket, das für die Kommunikation mit der VR-Instanz über postMessage zuständig ist.

Leider haben Web-Mitarbeiter nur Zugriff auf eine Teilmenge der Funktionen, die im globalen Gültigkeitsbereich des Browsers vorhanden sind. Für einige können Sie Umgehungslösungen in React VR wie AsyncStorage statt localStorage finden. Für alles andere müssen Sie eine Art der Kommunikation außerhalb des Web Worker über postMessage und mit einem Listener auf onmessage herausfinden.

Eine andere Möglichkeit, Daten von window an die VR-Instanz zu senden, besteht darin, ein natives Modul als Brücke zwischen den beiden zu implementieren. Sie können weitere Informationen in Persistent bridge between a React VR component and native module code finden.