2017-09-29 8 views
0

私が固執している問題は、ユーザーがモーダルを開くボタンをクリックしたときに関数を呼び出すことと関係しています。この関数の目的は、ユーザー情報がモーダルに入力されるようにGET要求を行うことです。私はonAfterOpen小道具を受け入れる反応モーダルパッケージを使用しています。私は自分の関数を呼び出すためにこの小道具を使うことができると知っていますが、GETリクエストを作るためには、リクエストにIDを渡す必要もあります。リーマンではなく、onClickというパラメータを持つモーダルコール関数

次のように私のモーダルが設定されています

<Modal 
    isOpen={this.props.isSelected} 
    onRequestClose={this.props.closeModal} 
    onAfterOpen={this.props.getInfo(id)} 
    // Also tried declaring function like below, but then I have no reference to user id. 
    onAfterOpen={this.props.getInfo} 
    contentLabel="Hello" 
    > 
    </Modal> 

発行し、このように私の関数を宣言するとは、私のページをモーダルに結びついているボタンのリストをレンダリングすることです。レンダー時にthis.props.getInfo(id)が呼び出されます。

例えば、私のコンテナコンポーネントはボタンコンポーネント(例えば9)のリストをレンダリングし、各ButtonコンポーネントにModalコンポーネントが含まれる場合、その関数は9回呼び出されます。

答えて

1

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

onAfterOpen={this.props.getInfo.bind(this, id)} 
+0

もない 'onAfterOpen = {(ID)=> this.props.getInfo(ID)}'働くだろうか? –

+0

それもうまくいくでしょう –

+0

ありがとう!私はネイサンの提案を使用して終わった、魅力のように働いた!それを書くこととの違いはありますか?like(id)=> this.props.getInfo(id)vs()=> this.props.getInfo(id)? – jamesvphan

関連する問題