Redux Form - 使用 compose 时 initialValues 不更新

Redux Form - initialValues not updating when using compose

参考:https://redux-form.com/6.7.0/examples/initializefromstate/

我正在尝试实现一个配置文件表单,该表单使用从 api 端点获取的初始数据进行更新。

在引用上面的 redux-form 示例时,我已经能够使该示例正常工作。但是,当我重构它以使用 compose 'initialValues' 时,不会将其插入到字段中。

此代码无效,initialValues 包含数据但不插入表单字段。

export default compose(
    reduxForm({
        form: 'initializeFromState',
        enableReinitialize : true
    }),
    connect(state => ({
        initialValues: state.profile, // pull initial values from account reducer
    }), actions)
)(EditProfile);

然而,这段代码仅对参考示例稍作修改即可工作。 'initialValues' 还包含数据。

EditProfile = reduxForm({
    form: 'initializeFromState', 
    enableReinitialize: true
})(EditProfile);

EditProfile = connect(
    state => ({
        initialValues: state.profile, 
    }),
    actions, 
)(EditProfile);

export default EditProfile;

它看起来和我很相似,但也许我不能像这样使用 compose?

您以错误的顺序将参数传递给 compose。组合函数从末尾开始执行。因此,您需要颠倒顺序以获得与第二个示例中相同的顺序:

export default compose(
    connect(state => ({
        initialValues: state.profile, // pull initial values from account reducer
    }), actions),
    reduxForm({
        form: 'initializeFromState',
        enableReinitialize : true
    })
)(EditProfile);