更新Formik表单上的初始值属性不会更新输入值
本文介绍了更新Formik表单上的初始值属性不会更新输入值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对前向裁判使用Forik形式,如下所示
Form.js
FormikWithRef.js
我有一些选项卡,更新easy-peasy
存储状态type
,当我选择第二个选项卡时,我想用Formik表单更新输入值(最初来自value
存储状态),但更新特定于作为initialValues
属性传递给Formik
组件组件的状态。
TabForm.js
单击第二个选项卡时;
TabsForms.js
中的initialValues
状态更新为value.input
=30000
;
和中属性也反映了<[2-8]=
- 但是,输入没有更新,使用
MoneyBox.js
组件中的useField
钩子MoneyBox.js
,field
对象没有value
的30000
,而是之前的任何字段值,这是为什么?
我已创建CodeSandbox以查看所有使用的组件,并创建控制台日志以查看Formik确实接收到更新的值,但似乎未应用它。
我已经在这个问题上纠结了几天,似乎找不到解决方案,如果有任何帮助,我将不胜感激。
推荐答案
如果希望在更改initialValues
时更改输入值,则需要将道具enableReinitialize
作为true
传递给Formik
组件。
因此,您需要在代码中更改的是TabsForm.js
传递给Form
组件的属性enableReinitialize
Form.js
中将该道具传递给Formik
组件
我不太确定您的业务逻辑应该如何工作,但以下是对上述更改的working example。
这篇关于更新Formik表单上的初始值属性不会更新输入值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!