2016-07-07 52 views
1

我正在加載Redux窗體,並將initialValues作爲道具傳遞。然而,我需要重新格式化數據以符合我的表單名稱。例如,如果initialValues中作爲道具傳遞的數據是{name:'John',age:'32'},我想將其轉換爲{user :{姓名:'約翰',年齡:'32'}}。你如何實現它?你是否寫了一個reducer來完成這個工作,如果是,那麼你如何在組件加載時調用它?以縮減格式重新格式化初始值

謝謝。

回答

0

當你通過道具時,你可以做到這一點。

const userData = { name: 'John', age: 32 } 

... 

<MyForm initialValues={{ user: userData }}/> 
0

如果你需要一些更大的變化,你也可以通過一個函數來initialValues:

const getInitialValues = (propValues) => { 
    const initialValues = {}; 

    // your function to format the values here 

    return initialValues; 
}; 

@reduxForm(
    { 
    form: 'myForm', 
    fields: formFields, 
    }, 
    state => ({ 
    initialValues: getInitialValues(state.userData), 
    form: state.form 
    }) 
)