根据其他两个字段设置redux-form字段值

时间:2019-02-20 01:18:31

标签: reactjs redux react-redux redux-form

因此,以redux形式,我已经看到了许多基于另一个Field来更新Field的值的方法。我的特殊情况是根据两个不同的Field更新Fields的值。

建议使用的两种流行方法是1.)redux-form's normalizer和2.)手动分派redux-form的change方法来更改Field3的值,当{ onChange的{​​1}}被调用。出于以下原因,这两种解决方案似乎都不适合我:

  1. Normalizer :假设我有3个字段-Field1Field1Field2。当Field3Field3中的任何一个更改时,我都需要设置Field1的值。 还可以在更改Field2时自动设置Field2的值。假设我在Field1上定义了规范化程序,该规范化程序检查整个表单的值。在这种情况下,在我的规范化函数中,Field1的值被更新,但是Field1保留了它的旧值。这可能是来自redux-form的奇怪行为。

  2. Field2Field3的{​​{1}}内部Field1手动调度redux-form的change方法-这样做的问题是,如果我尝试访问Field2的{​​{1}}中的onChange的值,则传递给Field1的{​​{1}}的方法将保留Field1的旧值。因此,我无法根据onChange的新值来可靠地设置Field1的值。

有关如何解决此问题的任何建议都将有所帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:

为field3创建一个组件(例如Field3),并以这种形式使用

mysqli_real_escape_string

在Field3组件中,我们还将field1和field2的值注入到Field3组件中。这样,每当组件更新时,我们都可以检查是由于field1还是field2,然后我们相应地更新field3:

<Field name="field3" component={Field3} />