2016-04-22 10 views
2

React RouterのonEnteronChangeを使用したいと思いますが、どういう仕組みがよく分かりません。私はこのように、それは動作しますが、そこから簡単な関数を実行すると:リアクタールータとonEnter/onChange

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

しかし、私はArchivesコンポーネントからメソッドを使用しようとすると、それはしていません。

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

これらの方法はどのように使用できますか?

答えて

1

スコープでメソッドをバインドする必要があります。

バインドする方法は2つあります。

まず1に、直接あなたのonChange

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

または、

上の2つ目

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

は、私はそれはどちらか動作しません、結合しようとしました。私が現在どこにいるかではなく、リンク先のコンポーネントからメソッドを使用したいということに注意してください。 –

+0

私はあなたが意味するものを見ています。したがって、あなたの 'にref =" archives "を追加する必要があります。あなたのthis.methodが呼び出されたときにthis.refs ['archives']のようなコンポーネントのメソッドを呼び出すことができます。myMethod() – hellopath

関連する問題