在React JS中使用Formik库提交表单时,有时我们只想提交非空值。这可以通过自定义提交处理函数来实现,该函数会检查每个字段的值,然后只发送非空值。
Formik是一个流行的React库,用于简化表单的状态管理和验证。它允许你通过values
对象访问表单字段的值,并通过setFieldValue
方法更新这些值。
onSubmit
函数,当表单提交时会被调用。如果你遇到只发送formik表单中的非空值提交的问题,可以通过以下步骤解决:
onSubmit
函数中,创建一个新的对象,只包含非空字段。import React from 'react';
import { Formik, Form, Field } from 'formik';
const MyForm = () => {
const handleSubmit = (values, { setSubmitting }) => {
// 创建一个新对象,只包含非空字段
const nonEmptyValues = Object.entries(values).reduce((acc, [key, value]) => {
if (value) {
acc[key] = value;
}
return acc;
}, {});
// 发送非空值到服务器
console.log(nonEmptyValues);
// 这里可以替换为实际的API调用
setSubmitting(false);
};
return (
<Formik
initialValues={{ firstName: '', lastName: '', email: '' }}
onSubmit={handleSubmit}
>
{({ isSubmitting }) => (
<Form>
<Field type="text" name="firstName" placeholder="First Name" />
<Field type="text" name="lastName" placeholder="Last Name" />
<Field type="email" name="email" placeholder="Email" />
<button type="submit" disabled={isSubmitting}>
Submit
</button>
</Form>
)}
</Formik>
);
};
export default MyForm;
通过这种方式,你可以确保只有非空字段被提交到服务器,从而减少不必要的数据传输和处理。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云