2017-06-20 138 views
0

兩種說法我已經檢查與初始值reduxForm的示例代碼之間的區別,他們的代碼和我的代碼之間的唯一區別是下面的代碼塊..陣營 - 與reduxForm

我的代碼(隱而不宣「t置換initialValues工作)

function mapStateToProps(state) { 
    return{ 
    initialValues: state.account.data 
    }; 
} 

export default reduxForm({ 
    form:'initializeFromState' 
})(connect(mapStateToProps,{load: loadAccount})(InitializeFromStateForm)); 

他們的代碼(與InitialValues工程)Taken from here

InitializeFromStateForm = reduxForm({ 
    form: 'initializeFromState', // a unique identifier for this form 
})(InitializeFromStateForm); 

// You have to connect() to any reducers that you wish to connect to yourself 
InitializeFromStateForm = connect(
    state => ({ 
    initialValues: state.account.data, // pull initial values from account reducer 
    }), 
    { load: loadAccount }, // bind account loading action creator 
)(InitializeFromStateForm); 

export default InitializeFromStateForm; 

我改變了自己的代碼connect()和reduxForm與我,有趣的是,initialValues停止工作,現在我的問題是都是不同的代碼?如果不同我的代碼有什麼問題?

謝謝。

回答

1

呀有輕微的差別,你與connect代碼包裝的組件,然後用ReduxForm,但是它應該是倒過來

更改爲

export default connect(mapStateToProps,{load: loadAccount})(reduxForm({ 
    form:'initializeFromState' 
})(InitializeFromStateForm)); 

,它應該工作

+0

完美!它的工作..非常感謝。 – iphonic

1

區別在於反應還原連接HoC和還原形HoC彼此包裹的順序。

在您的代碼中,redux-form包含連接HoC,並且initialValues不會傳遞到窗體,而是傳遞到內部組件。表單用值初始化,內部組件(你的)忽略它們。

道具流動:終極版型 - >連接 - initialValues - >部件

在他們的代碼連接渦卷Redux的形式,並且initialValues作爲到了Redux形式HOC(表格)通過。表單用值初始化。

道具流量:連接 - initialValues - >終極版型 - >組件

+0

感謝您的解釋..它是有幫助的。 – iphonic