2017-06-20 140 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