我有一个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将它发送回服务器。
我可以玩一些游戏,添加一个大对象来陈述并在提交,连接组件等方面进行查找,但那些感觉很麻烦。
答案 0 :(得分:0)
截至目前,我还没有找到一种方法来单独使用redux-form来解决这个问题。相反,当遇到新的表单定义时,我将其添加到具有基本操作/缩减器的全局状态。在我的表单的handleSubmit函数中,我通过使用名称字段作为状态表单定义中的键来从redux表单构造的那个派生新的提交对象。这使我可以轻松查找后端所需的任何值,并提交我的新派生对象。