我基于选择输入的更改从API调用动态获取输入,但是当我尝试将其添加到Formik的初始值时,它总是给我一个错误...
Warning: A component is changing an uncontrolled input of type text to be controlled.
如果我将enableReinitialize={true}
设置为Formik,则无济于事。
但是,如果我是从本地JSON或对象生成输入的,则错误会消失。
我在这里做错了什么...
https://codesandbox.io/s/test-dynamic-inputs-with-formik-xr9qg
尽管该表单提交很好。
答案 0 :(得分:5)
最好使用enableReinitialize={true}
。这是官方的 Formik API。
您可以查看this issue
答案 1 :(得分:1)
如果有人遇到相同的问题,我刚刚找到了解决方法...
您必须在TextInput组件内的输入或您使用的任何类型中设置value={field.value || ''}
才能解决此问题。
答案 2 :(得分:0)
我有一个复杂,动态的表格,也遇到了这个问题。对于以后调试此问题的任何人,我都建议您做一些事情:
如果您的表单不是动态表单-我认为最好在实施Ruby解决方案之前先检查您的initialValues对象。 Formik应该为您照顾这些价值-这就是为什么它是如此出色的工具。