Reactjs 如何重置/清除有条件渲染的Formik FieldArray?
使用Formik,我通过一个选择列表值有条件地呈现,这个字段数组有两个字段,即name和ageReactjs 如何重置/清除有条件渲染的Formik FieldArray?,reactjs,select,formik,Reactjs,Select,Formik,使用Formik,我通过一个选择列表值有条件地呈现,这个字段数组有两个字段,即name和age 我的问题是,假设我已经呈现了这个与姓名和年龄相关的FieldArray,并创建了5行信息,但我随后决定将select list值更改为另一个值,该值现在隐藏了这个FieldArray。在执行此操作时,如何将此FieldArray清除/重置回null?根据表单组件的结构,可以有多种方法来执行此操作 下面是一种使用Formik导出的setFieldValue函数显式设置字段值的方法 const FormC
我的问题是,假设我已经呈现了这个与姓名和年龄相关的FieldArray,并创建了5行信息,但我随后决定将select list值更改为另一个值,该值现在隐藏了这个FieldArray。在执行此操作时,如何将此FieldArray清除/重置回null?根据表单组件的结构,可以有多种方法来执行此操作 下面是一种使用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>
);
};
const FormComp=()=>{
返回(
{({values,setFieldValue})=>(
{
const{value}=e.target;
让shouldResetFieldArray=value!='showFieldArray';//替换为实际条件
if(shouldResetFieldArray){
setFieldValue(“fieldArrayKey”,[]);//将fieldArrayKey重置为空数组[];
}
}}
>
)}
);
};
只是想知道如何调用setFieldValue(“fieldArrayKey”,[])代码>作为三元运算符的一部分,即(a==3)?:setFieldValue(“fieldArrayKey”,[])代码>?@tonyfat如果您能用相关代码更新问题,那就太好了。我将实际提出一个关于此的新SO问题。在上创建了一个关于此的新SO问题