2016-08-30 9 views
0

redux-formの使用6.0.1redux-form:ノーマライザで変更をディスパッチする方法

私は2つのフィールドを持つフォームを持っています。 1つはセレクタ、もう1つは入力です。

 <Field name="toLanguage" component="select" normalize={normalizeLanguage}> 
     {languages.map(function(item) { 
      return <option key={item.id} value={item.name}>{item.display}</option>; 
     })} 
     </Field> 

     <Field name="toValue" component="input" type="text" placeholder="toLanguageString" /> 

私は入力フィールドの内容に基づいて入力内容を変更したいと思っています。私はそれがここで行うことができる方法について読む:https://github.com/erikras/redux-form/issues/442

をだから私は変更を派遣して先に行って試してみるために、手動で

<button type="button" onClick={() => dispatch(change('TranslationDetail', 'toValue', 'foo')) }>dispatch</button> 

これは動作しますが、これは少なくとも推奨方法でした。 ノーマライザを使用しようとすると、「Uncaught ReferenceError:変更が定義されていません」というエラーが発生しました。セレクタの状態に基づいてフィールドの値を変更するには、ノーマライザをどのように変更する必要がありますか?

const normalizeLanguage = (value, previousValue, dispatch) => { 
    if (!value) { 
    return value 
    } 
    console.log(value) 
    dispatch(change('TranslationDetail', 'toValue', value)) 
    return value 
} 

export default normalizeLanguage 

答えて

0

おそらくchange関数への参照がありません。インポート宣言に次の行を含めます。

import {change} from 'redux-form'; 
関連する問題