与えられたカスタムコンポーネント:
export const RenderDropDown = (props) => {
const {values, input, label, type, meta: {touched, error, active}} = props;
var options = function (value, index) {
return <Option key={index}
value={value} />
};
return(
<div>
<select {...input}>
<option value="">--- Select a nationality ---</option>
{values.map(options)}
</select>
</div>
)
}
Redux形式のフィールドコンポーネントにラップされています
<Field name="nationality" component={RenderDropDown} values={props.nationalities}/>
select
が「onChange」イベントを発生させると、Reduxフォームアクション(別名@@ redux-form/change)のほかにカスタムアクションがディスパッチされるようにしたいです。
どうすればこれを達成できますか?
<select>
タグにonChangeハンドラーを呼び出して設定する関数を小道具で渡そうとしましたが、これはredux形式のonChangeをオーバーライドします。
助けていただければ幸いです。
Redux-formの値を更新するには、独自のカスタムonChange
でredux-formonChange
を手動で呼び出す必要があります。そのようです:
const { onChange, ... } = props;
...
<select onChange={(e) => {
const val = e.target.value
// whatever stuff you want to do
onChange(val)
}} />