Reactjs 如何重置/清除有条件渲染的Formik FieldArray?

Reactjs 如何重置/清除有条件渲染的Formik FieldArray?,reactjs,select,formik,Reactjs,Select,Formik,使用Formik,我通过一个选择列表值有条件地呈现,这个字段数组有两个字段,即name和age 我的问题是,假设我已经呈现了这个与姓名和年龄相关的FieldArray,并创建了5行信息,但我随后决定将select list值更改为另一个值,该值现在隐藏了这个FieldArray。在执行此操作时,如何将此FieldArray清除/重置回null?根据表单组件的结构,可以有多种方法来执行此操作 下面是一种使用Formik导出的setFieldValue函数显式设置字段值的方法 const FormC

使用Formik,我通过一个选择列表值有条件地呈现,这个字段数组有两个字段,即name和age


我的问题是,假设我已经呈现了这个与姓名和年龄相关的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问题