使用Formik,我通过选择列表值有条件地呈现,该列表值有两个字段,即FieldArray和age。
我的问题是,假设我已经呈现了这个与姓名和年龄相关的FieldArray,并创建了5行信息,但我随后决定将选择列表值更改为另一个隐藏此FieldArray的值。在执行此操作时,如何清除/重置此FieldArray为空?
发布于 2021-04-12 19:21:17
根据表单组件的结构,有多种方法可以做到这一点。
这里有一种方法,它使用Formik导出的setFieldValue函数来显式地设置字段的值。
const FormComp = () => {
return (
<div>
<Formik>
{({ values, setFieldValue }) => (
<Form>
<select
onChange={(e) => {
const {value} = e.target;
let shouldResetFieldArray = value !== 'showFieldArray'; // replace with actual condition
if (shouldResetFieldArray) {
setFieldValue("fieldArrayKey", []); // reset fieldArrayKey to empty array [];
}
}}
></select>
</Form>
)}
</Formik>
</div>
);
};https://stackoverflow.com/questions/67057118
复制相似问题