无法在 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}
/>
我想在 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}
/>