reactjs - 如何重置/清除有条件渲染的 Formik FieldArray?
问题描述
使用 Formik,我通过一个选择列表值有条件地呈现,一个 FieldArray 有两个字段,即名称和年龄。
我的问题是,假设我已经渲染了这个与姓名和年龄相关的 FieldArray 并创建了 5 行信息,但是我决定将选择列表值更改为现在隐藏这个 FieldArray 的另一个值。这样做时,我怎样才能将此 FieldArray 清除/重置为 null?
解决方案
根据表单组件的结构,可以有多种方法来执行此操作。
这是使用setFieldValue
Formik 导出的函数显式设置字段值的一种方法。
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>
);
};
推荐阅读
- python - `from x import x` 究竟是什么意思?
- c# - 在循环中创建对象 C#
- python - 使用 DiscordPy 处理 IndexError 和属性错误
- docker - 如何从容器内部查找容器图像名称/标签
- .net - 将看起来像日期的 DateTime 或 String 类型作为参数传递给 URL / (.net webapi)
- python - 创建 boto3 sts 客户端时出现无效的标头值错误
- blueprint - 在 Popover2 中使用表单输入
- firebase - 即使对经过身份验证的用户使用最简单的规则,Firebase 实时数据库权限也会被拒绝
- r - 仍然无法将 MP4 嵌入闪亮
- sql-server - 以编程方式更改 PowerBI 中的订阅