Formik - 在 API 调用后更新初始值

Rub*_*uby 4 dynamicform reactjs redux axios formik

我根据选择输入的变化从 API 调用动态获取我的输入,但是当我尝试添加到 Formik 的初始值时,它总是给我一个错误......

Warning: A component is changing an uncontrolled input of type text to be controlled.
Run Code Online (Sandbox Code Playgroud)

如果我设置enableReinitialize={true}为 Formik 也无济于事。

但是,如果我从本地 JSON 或对象生成输入,错误就会消失。

我在这里做错了什么......

https://codesandbox.io/s/test-dynamic-inputs-with-formik-xr9qg

表单提交很好。

Kle*_*ovG 9

更好地使用enableReinitialize={true}。这是官方的 Formik API。你可以检查这个问题


Rub*_*uby 8

如果有人面临同样的问题,我刚刚找到了解决方案......

您必须value={field.value || ''} 在 TextInput 组件内的输入或您正在使用的任何类型中进行设置才能解决此问题。