2017-03-03 56 views
1

我正在使用最新的REDX形式(V6)。我試圖讓與狀態值初始化的形式,所以我這樣做,根據文檔:空白字段的形式,`initialValues`沒有考慮到

myForm = reduxForm({ 
    form: 'xxx' 
})(myForm); 

myForm = connect(state => ({ 
    initialValues: { 
     ...state.taskForm.taskData.parameters 
    } 
    }) 
)(myForm); 

然後,我小心地加入我的Field組件的myFormrender()方法,我使用自定義InputField我的無狀態組件:

export const InputField = ({propName, label}) => (
    <Field name={propName} 
      component={ (prop) => <FormGroup> 
       <Col xs={4} componentClass={ControlLabel}>{label}</Col> 
       <Col xs={8}> 
       <FormControl {...prop} /> 
       </Col> 
      </FormGroup> 
      } 
    /> 
); 

(我用react-bootstrap對UI)

我當然三重檢查了name S代表Field是正確的,從initialValues

但是,窗體顯示爲空白字段而不是初始值。

我可以看到調試器INITIALIZE動作.payload包含我的領域與正確的初始值。

我認爲這個問題是這樣的:INITIALIZE行動之前REGISTER_FIELD出動。或者至少,一旦REGISTER_FIELD被調度,它不會採用初始值,雖然字段名稱設置正確...但我不知道該怎麼做才能解決問題。而 也許這是由於別的東西...

由於我絕望,我試過reinitializeState: true,但它不會改變任何東西。

編輯:看來,其實我面對這個問題#1750和解決方案似乎#2210

回答

2

Field傳遞性質分爲inputmeta對象的組件,您應該只通過input屬性爲FormControl組件。因此,使用這樣的:

<FormControl {...prop.input} /> 

,而不是這樣的:

<FormControl {...prop} /> 

請檢查redux-form docs瞭解更多詳情。