2017-08-12 1 views
0

還元型のreact-toggleを使用することは可能ですか?react-toggleとreactx-formの使い方は?

が反応し、トグルをそうのようなトグルのrender:反応-トグルをするにはどうすればよいReduxのフォームの値を更新

   <Field 
       name="email_newsletter" 
       id="email_newsletter" 
       component="input" 
       type="checkbox" 
       /> 

:そうのようなReduxのフォームフィールドコンポーネントを考えると

<Toggle 
    icons={false} 
    onChange={this.handleToggleChange} 
/> 

フィールド?

おかげ

enter image description here

答えて

1

あなたは、このようなカスタムレンダラを定義することができます

export const renderToggleInput = (field) => (
    <Toggle checked={field.input.value} onChange={field.input.onChange} icons={false} /> 
); 

をしてField部品のcomponent小道具に設定します。

<Field 
    name="email_newsletter" 
    id="email_newsletter" 
    component={renderToggleInput} 
/> 

警告:value prop documentationによるvalueタイプを定義する必要があります。

チェックボックスの場合はブール値、他のすべての入力タイプの場合は 文字列です。このフィールドのRedux 状態に値がない場合、デフォルト値は ''になります。これは、 の入力を確実に制御するためです。値が別の タイプ(例:日付または番号)であることが必要な場合は、このフィールドの目的のタイプの フォームにinitialValuesを指定する必要があります。

したがって、あなたのレシムフォームにチェックボックスの初期値も定義する必要があります。失敗したプロップタイプ:タイプの無効な小道具 `checked`` `Toggle`、期待` boolean`に供給STRING`

あなたはRedux-Form Field documentation

+0

で詳細を見つけるには、警告 'ワットの誤差があること..あなたに感謝します。 ' – AnApprentice

+0

私はそれを' checked = {field.input.value == 'true')} 'に変更しようとしました。これは、反応トグルがブール値ではない文字列を返すということです...今度は、トグルをfalseからtrueに設定できます。真実から偽に戻らない、 – AnApprentice

+0

@AnApprentice私はあなたの問題を発見したと思う、私は私の答えを更新したと思う –