2016-11-24 8 views
0

Imは選択肢のコンポーネントの実装です
どのように私は私がしたいのか、非常に反応する新しいと私は登録ページのチェックボックス要素に<br></p> <p>、以下を働いて反応するコールバック

const ChoiceItem = ({ options, itemId, selectedIndex, onChange }) => (
    handleChange: function(checked){ 
    const value = []; 
    options.map(option, i) => (
     value[ i ] = checked; 
    ) 

    }, 
    <Card> 
    { 
     options 
     .map((option, i) => (
     <Checkbox 
      id={ `Choiceitem-checkbox-${ i }-${ itemId }` } 
      key={ i } 
      label={ option.text } 
      style={ styles.checkbox } 
      value={ '' + i } 
      onChange={ (checked) => onChange(itemId, [ i ], checked) } 
     /> 
    )) 
    } 
    </Card> 
); 

を実装することができますここでは、オプションをループしてvalueという名前の配列に値を取得し、登録フォームにhandleAnswerChangeをコールしてそこに値を設定します。誰かがそれをどのようにアーカイブすることができるのか教えていただけますか?
ありがとうございます。

+0

コードスニペットでは、 'this'を' this.handleAnswerChange'にバインドしませんでした。 つまり、 'this.handleAnswerChange = this.handleAnswerChange.bind(this)'を 'コンストラクタ 'に配置する必要があります。それ以外の場合、 'this.setState()'はあなたのケースでは動作しません。あなたは 'renderItem()'で 'props'を渡しませんでした。 –

+0

@andre 'handleAnswerChange'は矢印関数を使って定義されているので自動的にバインドされます。これは少なくとも2段目のバベルを使用する必要があります。 – kwelch

+0

@kwelch oops、申し訳ありませんが、私は彼/彼は矢の機能を使用して気づかなかった、私の悪い。 –

答えて

0

あなたにとって最良の解決策のようなサウンドは、双方向結合です。反応文書をチェックアウトして、双方向バインディングを追加することができます。

react two way binding

もう1つのオプションはjqueryを使用します

0

これは実際にはこれに非常に近いです。私はMultipleChoiceItemであなたのhandleChangeを更新します:

handleChange = (index) => (checked) => { 
    const newValues = options.map((option, i) => { 
    // if it is the changed returned the new state 
    // otherwise just return the current value 
    return index === i ? checked : option; 
    }); 
    this.props.onChange(this.props.itemId, newValues); 
}; 

次に、あなたの私はonChangeを設定しますレンダリングの内側:

onChange={this.handleChange(i)} 

これは、各チェックボックスをクリックの上ごMyRegisterFormに状態を更新する必要があります。

+0

返信いただきありがとうございます。私の場合は2つのチェックボックスがありますが、handleChange関数で配列を送信する方法があります。上記の例では、チェックボックスが正しく選択されている場合にのみ値が設定されます。しかし、私は2つのチェックボックスの値を変更するたびに配列に設定したい。 – Anna

+0

私は、実際には、チェックボックスのインデックスを、登録フォームに送信して回答として保存する必要があります。そこにはまった種類のものがあります:( – Anna

+0

'i'が渡されると、配列の各チェックボックスにアタッチすることができます。これは、チェックとアンチェックの両方で呼び出されます。あなたのスニペットに基づいてそれをベースにします。 – kwelch

関連する問題

 関連する問題