Reactjs 是的,正在验证预填充字段

Reactjs 是的,正在验证预填充字段,reactjs,formik,yup,Reactjs,Formik,Yup,我使用的是Formik和Yup,当我预填充一个字段/表单时,Yup会验证字段,就好像它们没有填充一样。我有基本的CRUD类型布局,更新数据需要预先填充表单。这些预先填充的字段不应使用错误进行验证。我做错了什么 验证架构: const validationSchema = Yup.object({ fname: Yup .string() .required('First Name is required'), lname: Yup .string() .requi

我使用的是Formik和Yup,当我预填充一个字段/表单时,Yup会验证字段,就好像它们没有填充一样。我有基本的CRUD类型布局,更新数据需要预先填充表单。这些预先填充的字段不应使用错误进行验证。我做错了什么

验证架构:

const validationSchema = Yup.object({
fname: Yup
    .string()
    .required('First Name is required'),
lname: Yup
    .string()
    .required('Last Name is required'),
address: Yup
    .string()
    .required('Address is required'),
city: Yup
    .string()
    .required('City is required'),
});
福米克:

const formik = useFormik({
    initialValues: {
        fname: '',
        lname: '',
        address: '',
        city: '',
    },
    validationSchema: validationSchema,
    onSubmit: values => {
        alert(JSON.stringify(values, null, 2));
    },
});
示例字段:

<TextField
    id="fname"
    name="fname"
    variant="outlined"
    value={location.fname}
    onChange={formik.handleChange}
    error={Boolean(formik.errors.fname)}
    helperText={formik.errors.fname} />

我需要设置初始值

const formik = useFormik({
    initialValues: {
        fname: props.fname,
        lname: props.lname,
        address: props.address,
        city: props.city,
    },
    validationSchema: validationSchema,
    onSubmit: values => {
        alert(JSON.stringify(values, null, 2));
    },
});