2017-03-07 8 views
0

複数の入力があります。どの入力が変更されたかをどのように知ることができますか?私はそれを行う一つの方法は、私は私のhandleChange関数に追加のパラメータを渡すことができると思う。私はjsxでこれを行うことができることを知っていますonChange={this.handleChange.bind(this, 'name');しかし、コンストラクタが関数をバインドしていたので、それを行う方法がわかりません。反応でコンストラクタを使用している間に追加のparam関数を渡します。

class HelloWorldComponent extends React.Component { 

    constructor(){ 
    super(); 

    this.handleChange = this.handleChange.bind(this); 

    this.state = { 
     name:"", 
     age:"" 
    } 
    } 

    render() { 
    const person = {"name":"james", "age":18}; 
    return ( 
     <div> 
     <input onChange={this.handleChange} type="text" placeholder="name" defaultValue={person.name} /><br /> 
     <input onChange={this.handleChange} type="text" placeholder="age" defaultValue={person.age} /> 
     </div> 
    ); 
    } 

    handleChange(e){ 
    // how to get name and age here? 
    console.log(e.target.value) 
    } 
} 

http://jsbin.com/cubofurihu/edit?js,console,output

+0

JSのonClickは値を渡すことはできません。handleChangeを想定し

onChange={(e) => this.handleChange(e, 'name')} 

です方法](http://stackoverflow.com/questions/29810914/react-js-onclick-cant-pass-value-to-method) –

答えて

0

bind機能のための任意の呼び出しを行いません、それだけで関数にスコープthisをassignes。

その後、onChange={this.handleChange.bind(this, 'name')}

を書くしかし、次のように記述しないでください:[リアクトの可能性のある重複

handleChange(e, param) { 
     console.log(e.target.value); 
     console.log(param) // 'name' 
    } 
+0

handleChange(param){ }ここでイベントにアクセスするにはどうすればよいですか?いいえ? –

+0

更新された回答を確認 –

+0

ブックマーク済み、多くの感謝! –

関連する問題