因此,以redux形式,我已经看到了许多基于另一个Field
来更新Field
的值的方法。我的特殊情况是根据两个不同的Field
更新Fields
的值。
建议使用的两种流行方法是1.)redux-form's normalizer和2.)手动分派redux-form的change方法来更改Field3
的值,当{ onChange
的{1}}被调用。出于以下原因,这两种解决方案似乎都不适合我:
Normalizer :假设我有3个字段-Field1
,Field1
和Field2
。当Field3
或Field3
中的任何一个更改时,我都需要设置Field1
的值。 还可以在更改Field2
时自动设置Field2
的值。假设我在Field1
上定义了规范化程序,该规范化程序检查整个表单的值。在这种情况下,在我的规范化函数中,Field1
的值被更新,但是Field1
保留了它的旧值。这可能是来自redux-form的奇怪行为。
从Field2
或Field3
的{{1}}内部Field1
手动调度redux-form的change方法-这样做的问题是,如果我尝试访问Field2
的{{1}}中的onChange
的值,则传递给Field1
的{{1}}的方法将保留Field1
的旧值。因此,我无法根据onChange
的新值来可靠地设置Field1
的值。
有关如何解决此问题的任何建议都将有所帮助。谢谢!
答案 0 :(得分:0)
尝试一下:
为field3创建一个组件(例如Field3),并以这种形式使用
mysqli_real_escape_string
在Field3组件中,我们还将field1和field2的值注入到Field3组件中。这样,每当组件更新时,我们都可以检查是由于field1还是field2,然后我们相应地更新field3:
<Field name="field3" component={Field3} />