2016-11-09 2 views
0

親コンポーネントには、子コンポーネントからデータを収集する2つの別々のイベントハンドラがあります。Reactのスコープデータ

私のhandleSubmitハンドラの中で、両方のデータオブジェクトをポストするメソッドを呼び出す必要があります。 data2ハンドラー内のdata1にアクセスするにはどうすればよいですか?

答えて

0

あなたのデータ値は別のコンポーネント(親)を介して渡されるので、それは、小道具を通過していますし、それらの値は変更されません場合にはthis.propsを介してアクセスすることができた場合は、それ以外の場合は、あなたのデータを保存する必要があるかもしれませんがdata1値とコンポーネントの状態経由data2フォローようなものにするために:あなたは単にあなたが事前に定義されたメソッド(handleClick)にアクセスしたい場合は、this.setState({})を使用するのと同じようにすることができますリアクトクラスを作成し、メソッドを定義する場合

handleClick(data1){ 
    this.setState({data1}); 
} 

handleSubmit(data2){ 
    this.setState({data2}); 
    method(this.state.data1, this.state.data2) 
} 
1

を書く。 キーワードは、このコンテキストでクラスを参照します。

class MyCompnonent extends React.Component{ 

handleClick(data){ 
    this.setState({ 
    data1: data 
    }); 
    console.log(data1); 

} 

    handleSubmit(data2){ 
    console.log(data); 
    this.method(this.state.data1, data2); 
    } 

} 
+2

それがために、 'this.state.data1'と'への呼び出しがthis.setState'と呼ばれるハンドラ定義内this' 'の正しいスコープを持つようにすることは注目に値します、あなたがする必要がありますイベントハンドラが親MyComponentクラスに正しくバインドされていることを確認してください(例: 'this.handleClick = this.handleClick.bind(this);')。 – Pineda

+0

ありがとうございます。投票に値する? :-P – Pineda

関連する問題