ReactRouter "bei Änderung" Ereignis?

8

Ich möchte einen Analytics-Handler auf meiner Einseiten-App installieren und möchte jede Routenänderung unter der Hauptroute erfassen. Ich erkenne, dass ReactRouter ein onEnter route-Ereignis anbietet; Dies würde jedoch erfordern, dass ich den Handler für jede Route separat installiere. Ich könnte eine Unterklasse von Route erstellen, die automatisch onEnter enthält, aber dann wäre ich nicht in der Lage, onEnter zu überschreiben und den Analytics-Tracking-Handler beizubehalten.

Was wäre der beste Weg, um Änderungen innerhalb einer gegebenen Root-Route zu hören?

    
Ryan Kennedy 02.09.2015, 19:54
quelle

4 Antworten

8

Sie können den react-router willTransitionTo statische Funktion, um eine Routenänderung zu erkennen und die transition.path in Ihrem ga() Funktionsaufruf zu emittieren, wie folgt:

%Vor%

Ein vollständigeres Beispiel ist in dieser Antwort zu finden.

    
pxwise 02.09.2015, 20:13
quelle
3

Die Antwort war (im übertragenen Sinne) starrte mich ins Gesicht.

Wenn Sie den Router starten, rufen Sie Router.run(routes, callback) auf. Der Rückruf wird bei jeder Routenänderung aufgerufen. Daher funktioniert der folgende Code so, wie ich es wollte:

%Vor%     
Ryan Kennedy 02.09.2015 20:08
quelle
0
___ qstnhdr ___ ReactRouter "bei Änderung" Ereignis? ___ answer32362202 ___

Die Antwort war (im übertragenen Sinne) starrte mich ins Gesicht.

Wenn Sie den Router starten, rufen Sie %code% auf. Der Rückruf wird bei jeder Routenänderung aufgerufen. Daher funktioniert der folgende Code so, wie ich es wollte:

%Vor%     
___ answer47313977 ___

Reagieren: v15.x, React Router: v4.x

Komponenten / Kern / App.js:

%Vor%

index.js:

%Vor%     
___ tag123reactjs ___ React ist eine JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen. Es verwendet ein deklaratives Paradigma und zielt darauf ab, sowohl effizient als auch flexibel zu sein. ___ tag123reactrouter ___ React Router - Eine komplette Routing-Bibliothek für React, inspiriert von Embers Routing-System ___ answer32362282 ___

Sie können den react-router willTransitionTo statische Funktion, um eine Routenänderung zu erkennen und die %code% in Ihrem %code% Funktionsaufruf zu emittieren, wie folgt:

%Vor%

Ein vollständigeres Beispiel ist in dieser Antwort zu finden.

    
___ antwort43963038 ___

Diese Funktion wird jedes Mal aufgerufen, wenn die Route geändert wird

%Vor%     
___ qstntxt ___

Ich möchte einen Analytics-Handler auf meiner Einseiten-App installieren und möchte jede Routenänderung unter der Hauptroute erfassen. Ich erkenne, dass ReactRouter ein %code% route-Ereignis anbietet; Dies würde jedoch erfordern, dass ich den Handler für jede Route separat installiere. Ich könnte eine Unterklasse von Route erstellen, die automatisch %code% enthält, aber dann wäre ich nicht in der Lage, %code% zu überschreiben und den Analytics-Tracking-Handler beizubehalten.

Was wäre der beste Weg, um Änderungen innerhalb einer gegebenen Root-Route zu hören?

    
___
han4wluc 14.05.2017 10:52
quelle
0

Reagieren: v15.x, React Router: v4.x

Komponenten / Kern / App.js:

%Vor%

index.js:

%Vor%     
ukr 15.11.2017 17:40
quelle

Tags und Links