2016-11-09 6 views
0

てみましょう私はいくつかは、次のようにコンポーネントとそのレンダリングルックスを反応させるのレンダリングよ同じ:は、リンクのonClickは、現在のparamsを活用していないリアクト

render(){ 
    let links = [10, 50, 100, 500, 1000].map((num) => { 
    return(
     <Link key={num} onClick={this.showParams.bind(this)} to={`/somePath/${num}`}>{num}</Link> 
    ) 
    }) 
    return (
    <div>{links}</div> 
) 
} 

そして、私は次の関数は、同じコンポーネントで定義されています:

showParams(){ 
    console.log(this.props.params); 
} 

リンクをクリックするたびに、リンクがクリックされた後ではなく、リンクがクリックされる前のparamsの値が記録されます。このリンク自体から得たprops.paramsにアクセスするには、どのように反応コンポーネントを取得できますか?あるいは、私はまったく別のアプローチを取っていなければなりません。それは私がonClick(私は最終的には、この新しいパラメータで状態をリセットしたい、それはリンクコンポーネントが本質的に何かのように思われる)が必要なことを少し感じています。

それはここに役立ちます適切だ私のルータの一部だ場合:

return (
    <th value={column} onClick={() => this.handleSort(column)}>{column}</th> 
); 

ES5

あなたは.bind使用することができます。

<Route path='/somePath/:num' component={someComponent} /> 

答えて

0

ES6

が矢印関数を使用必要なパラメータを渡す:

return (
    <th value={column} onClick={that.handleSort.bind(that, column)}>{column}</th> 
); 
+0

私は矢の機能を使用していただきありがとうございます。ちょっとハッキリを感じた、私はパラメータを使用できるように感じる –