2017-02-09 73 views
2

給出一個自定義組件:派遣終極版,窗體上的自定義操作時的OnChange選擇

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> 
    ) 
} 

在終極版型字段組件

<Field name="nationality" component={RenderDropDown} values={props.nationalities}/> 

我想裹,當select火災「的onChange」事件中,除了Redux表單操作(AKA @@ redux-form/change)外,還會發送自定義操作

我該如何實現此目的?

我試着通過props函數來調用onChange處理程序並設置<select>標記,但是這會覆蓋redux-form onChange。

任何幫助表示讚賞!

回答

4

您需要在您自己的自定義onChange中手動調用redux-onChange來更新redux-form值。像這樣:

const { onChange, ... } = props; 
... 
<select onChange={(e) => { 
    const val = e.target.value 
    // whatever stuff you want to do 
    onChange(val) 
}} /> 
+1

嘿@inostia謝謝你的回答。我發現自己是答案。看起來已經實現了,但我以某種方式錯過了它:https://github.com/erikras/redux-form/releases事件回調! - 你現在可以通過改變,onBlur,onFocus等等道具到場... –

+0

謝謝@VicensFayos。我使用的是redux-form 5.x.x,但現在已經更新到6.5.x.所以如果你直接轉換到它是否自動在你的電話後自動調用onChange的redux-form? (即,更新還原形式存儲中的字段值) – inostia