我需要一种在 for 循环中将字段添加到 Formik 表单的方法。我已经阅读了 FieldArray 组件的文档,但我并不真正了解如何使用它。这是我当前的代码:
function generate(values) {
for (let i = 0; i < 10; i++) {
values.test.push({
hello: "world"
})
}
}
return (
<div>
<Formik initialValues={{test: []}}/>
{(values)=>(
<Form>
<FieldArray>
{()=>generate(values)}
<p>{JSON.stringify(values)}</p>
</FieldArray>
</Form>
)}
</div>
)
目前,它只是显示一个空白页面。甚至没有错误消息。
最佳答案
您上面的代码不起作用的原因是因为您在 <Formik />
之外调用字段数组和表单
应该是:
<Formik render={({ values }) => (
<Form>
<FieldArray />
</Form>
)/>
而不是:
<Formik initialValues={{test: []}} />
<Form>
<FieldArray />
</Form>
你可以在这里看到一个更清晰的例子:https://codesandbox.io/s/1o8n593z6q
关于javascript - 动态添加字段到 Formik 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65855719/