【问题标题】:in redux-form: how to retrieve values still not submitted在 redux-form 中:如何检索仍未提交的值
【发布时间】:2017-02-17 09:23:00
【问题描述】:

我有一个 redux-form 组件,它在第一次加载时从 redux 存储中获取 initialValues 并填充表单。表格仍未提交。 (它之前已提交,但在用户浏览器重新加载后我们处于从头开始的新状态)。初始值已正确填充。

let CheckoutStep1Form = (props) => {
   return(
     //my fancy form
   )
}

CheckoutStep1Form = reduxForm({
    form: 'step1', // a unique name for this form
})(CheckoutStep1Form);

CheckoutStep1Form = connect(
    state => ({
        initialValues: {
          //my initial values
        }
    })
)(CheckoutStep1Form)

除此之外,我还有另一个组件,旨在以一个简单的视图总结前面步骤中提供的所有表单信息。

const CheckoutStep1Summary = ({values}) => {
   return(
     //my fancy summarize view
   )
}

export default connect(
    state => ({
        values: getFormValues('step1')(state)
    })
)(CheckoutStep1Summary)

问题:getFormValues('step1')(state) 返回空。由于未提交,表单中没有值。

所以问题是:我可以使用 redux-form 从尚未以某种方式提交的表单中获取表单值吗?

当然,我可以做一些解决方法,因为我在 state 中有值,但我想知道 redux-form 是否考虑了这种情况。

【问题讨论】:

    标签: react-redux redux-form react-redux-form


    【解决方案1】:

    我很困惑,表格中的值是否存在?您说“初始值已正确填充”,这让我认为是的,但getFormValues() 只是从 Redux 返回值。我建议使用Redux Dev Tools 来确定表单状态是什么样的。

    您可能只是在这个问题中打错了,但是:

    CheckoutStep1Form = connect(
        state => ({
            initialValues: {
              //my initial values
            }
        })
    )
    

    应该是这样的:

    CheckoutStep1Form = connect(
        state => ({
            initialValues: {
              //my initial values
            }
        })
    )(CheckoutStep1Form) // <-------
    

    希望对您有所帮助...

    【讨论】:

    • 感谢您的回答@Erik R!值通过 initialValues 传递给表单但未提交,因此 getFormValues('myForm')(state) 在另一个组件中返回 undefined。所以我的假设是 getFormValues 只有在提交表单后才返回一些东西。我是对的吗?关于你猜我输入错误的提示。 :) 但感谢您指出
    • 没有。 getFormValues() 选择器始终返回当前表单值。
    • 好吧,我做错了假设。感谢您的宝贵时间!
    • @VicensFayos 你让getFormValues('myForm')(state) 工作了吗?我有一个类似的场景(预览/摘要组件),我遇到了同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2020-07-23
    • 1970-01-01
    • 2018-08-16
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多