使用Redux表单提交其他字段属性

时间:2017-06-27 23:17:39

标签: reactjs redux redux-form

我有一个redux-form驱动的表单,它是通过我后端发送的JSON构建的。此数据具有我需要在提交时回发的特定密钥(例如,filterID)。 Redux-form似乎保持表单/字段的相当小的状态表示。举个例子,这是一个微不足道的状态转储:

{form : {
    myForm: {
        registeredFields: {
            field1: {name: "field1", type: "Field", count: 1},
            field2: {name: "field2", type: "Field", count: 2}
        },
        values: {
            field1: "123"
        }
    }
}

是否有使用redux-form的内置方式,我可以让它在状态中存储其他数据(例如filterID),或者键入属性/ prop而不是名称?

<Field
      key={somethingunique}
      name={component.name}
      component={component.type}
      filterID={component.id}
/>

这会产生类似以下状态的东西(只要它存在,就将其他东西/ filterID移动到任何地方):

{form : {
    myForm: {
        registeredFields: {
            field1: {name: "field1", type: "Field", count: 1},
            field2: {name: "field2", type: "Field", count: 2}
        },
        values: {
            field1: "123"
        },
        additionalStuff: {
            field1: {filterID: "abc"}
        },
    }
}

我对这种方法的想法是,它很容易被handleSubmit抓取,这样我就可以用简单的stringify将它发送回服务器。

我可以玩一些游戏,添加一个大对象来陈述并在提交,连接组件等方面进行查找,但那些感觉很麻烦。

1 个答案:

答案 0 :(得分:0)

截至目前,我还没有找到一种方法来单独使用redux-form来解决这个问题。相反,当遇到新的表单定义时,我将其添加到具有基本操作/缩减器的全局状态。在我的表单的handleSubmit函数中,我通过使用名称字段作为状态表单定义中的键来从redux表单构造的那个派生新的提交对象。这使我可以轻松查找后端所需的任何值,并提交我的新派生对象。