3 回答
TA贡献1811条经验 获得超4个赞
我找到了一种解决方案,也许它会对某人有所帮助。您需要initialValues为 formik 创建动态为:
let passwordId = 'password-'+ idx ;
let firstNameId = 'firstName-'+ idx;
let lastNameId = 'lastName-'+ idx;
let zipCodeId = 'zipCode-'+ idx;
return (
<Formik
key={idx}
initialValues={{
email: props.wrapperForm[idx].email || '',
[passwordId]: props.wrapperForm[idx].password || '',
[firstNameId]: props.wrapperForm[idx].firstName || '',
[lastNameId]: props.wrapperForm[idx].lastName || '',
[zipCodeId]: props.wrapperForm[idx].zipCode || ''
}}
>
)
TA贡献1871条经验 获得超8个赞
阅读以上所有评论真的很有帮助,尤其是在理解 react 中表单元素中不受控制和受控组件之间的基本区别。但是,在将 InitialValues 作为属性添加到 Formik 后,我得到了同样的错误。这让我想到了这样一个事实,即每当反应将表单输入视为不受控制(在 DOM 中控制)并结合反应组件中的状态更改功能时,就会发生错误。事实上,我收到了错误,因为在我的 react useState 钩子中初始化的变量名称与我用作表单输入键的表单上的 name 属性不同。如果在 Formik 上添加 InitialValues 属性后出现相同的错误,则应确保您的状态变量与每个表单输入上的名称属性相同。
TA贡献1815条经验 获得超6个赞
我的表单上有一个字段,但没有相应的初始值。一旦我将字段添加到初始值(我使用静态值,不必是道具),此错误消息就消失了。
我注意到 ppb 的回答改变了initialValues问题中的字段名称,也许这使它们匹配?
我假设当指定初始值时组件是受控的,否则不受控制。
添加回答
举报
