2016-04-22 17 views
2

Ich möchte onEnter und onChange von React Router verwenden, aber ich verstehe nicht ganz, wie. Wenn ich einfache Funktionen von dort ausführen, funktioniert es wie folgt aus:React Router und onEnter/onChange

<Route path="/tag/:slug" component={Archives} onChange={() => { console.log('awd'); }} /> 

Aber wenn ich versuche Archives Komponente eine Methode aus zu verwenden, ist es nicht.

<Route path="/tag/:slug" component={Archives} onChange={this.method()} /> 

Wie kann ich diese Methoden verwenden?

Antwort

1

Sie müssen Ihre Methode an Ihr Oszilloskop binden.

Es gibt 2 Möglichkeiten zu binden.

erste, direkt auf Ihrem onChange

<Route path="/tag/:slug" component={Archives} onChange={this.method.bind(this)} /> 

oder

Zweite ein

this.method = this.method.bind(this) 
+0

ich Bindung versucht, es funktioniert auch nicht. Bitte beachten Sie, dass ich Methoden von der Komponente, mit der ich verlinke, verwenden möchte, nicht von wo ich momentan "bin". –

+0

Ok, ich verstehe was du meinst. Du musst also ref = "archives" auf deinem '' hinzufügen Wenn deine this.method aufgerufen wurde, kannst du die Methode deiner Komponente wie folgt aufrufen: refs ['archives']. myMethod() – hellopath