Redux表单 - 使用撰写

时间:2017-12-02 16:55:09

标签: reactjs redux redux-form

参考: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;

看起来和我相似,但也许我不能用这样的作品?

1 个答案:

答案 0 :(得分:5)

您以错误的顺序将参数传递给compose。组合函数从结束到开始执行。所以你需要颠倒顺序,使其与你在第二个例子中得到的相同:

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