无法在 Reach.Js 中处理 Formik 中的更改

Can't handlechange in Formik in Reach.Js

我想在 isStudent 为真时将 isStudent 更改为真。我尝试使用 handleChange 和 useEffect,但它不起作用...我如何在 React Hooks + Formik 中使用 handleChange

  useEffect((values, setFieldValue) => {
    console.log('values', values)
    // undefined
    if(values.isStudentTicket === true) {
      setFieldValue('isStudent', true)
    }
  }, [])

  return (
    <Formik
      enableReinitialize={enableReinitialize}
      initialValues={initialValues}
      validate={validate}
      onSubmit={onSubmit}
    >
      {({
        isSubmitting,
        isValid,
        setFieldValue,
        values,
      }) => {
        return (
          <Form>
            <FastField
              type="checkbox"
              name="isStudent"
              onChange={handleChange}
              defaultChecked={values.isStudent}
            />
            <FastField
              type="checkbox"
              name="isStudentTicket"
              onChange={handleChange}
              defaultChecked={values.isStudentTicket}
            />  

您可以在 onChange 函数本身中处理逻辑

 <Form>
        <FastField
          type="checkbox"
          name="isStudent"
          onChange={handleChange}
          defaultChecked={values.isStudent}
        />
        <FastField
          type="checkbox"
          name="isStudentTicket"
          onChange={(e) => {
             handleChange(e); 
             if(e.target.checked === true)
                setFieldValue('isStudent', true)
          }}
          defaultChecked={values.isStudentTicket}
        />