2016-07-05 9 views
0

反応で複雑な形を作りたいと思っています。これは入力行列であり、入力値が変化すると操作を行う必要があります。私はすべての入力の "onchange"について同じ関数を呼びたいと思いますが、どの入力がその関数を呼び出したのかを知る必要があります。それをする最善の方法は何ですか?反応の入力の行列

すべての入力値を、自分のコンポーネントの状態で保存しているjavascript配列に格納することをお勧めします。入力上の値が変更されたときに、私の関数でこの配列を操作することができます。私はそれが良い習慣であるかどうかはわかりません。

提案がありますか?私はReactを始めたばかりだし、私が見つけたすべての例は単純な形である。ありがとう!

答えて

0

あなたはこのような何かを行うことができます:

class MyComponent extends React.Component 
    _createOnChangeFunction = (inputIndex) => { 
    return() => { 
     // The magic of closures helps you out here 
     console.log(`INPUT ${inputIndex} CHANGED`); 
    } 
    } 

    render() { 
    myElements = []; 
    for(i = 0; i < NUMBER_OF_INPUTS; i++) { 
     myElements.push(<input type='checkbox' value={i} onChange={this._createOnChangeFunction(i)} />); 
    } 

    return (
     <div> 
     {myElements} 
     </div> 
    } 
    } 

} 

の良い例えば

を(あなたがNUMBER_OF_INPUTSと何が実際に機能してやりたいを提供する必要があるだろうことに注意してください)私が使用した閉鎖物、このポストをチェックアウト:How do JavaScript closures work?

関連する問題