[英]How can I access formik helpers insider formik wrapper component to set field value of a particular field
我正在按照教程通过创建 formik 包装器组件来使用 formik 创建多步表单。 到目前为止,它适用于普通字段元素。 但是在某些情况下,我希望使用 setFieldValue 来设置自定义组件的某些值,formik 助手无法访问包装器的子元素。 有人可以帮助我如何使用 formik 助手来设置包装器的子元素的值。
这是我正在关注的示例链接。
这就是我想要实现的 -
<FormikStepper
initialValues={{...values}}
onSubmit={someFunction}
onReset={() => {}}>
<FormikStep label='Step 1' validationSchema={Step1ValidationSchema}>
<label>Some Label</label>
<input
name='image'
type='file'
className=''
onChange={(e) => {setFieldValue("image", e.target.files[0]);}}
/>
<ErrorMessage name='image'/>
</FormikStep>
我怎样才能访问它来设置孩子的价值。 我尝试创建一个上下文,但我对在哪里初始化上下文感到困惑。即我应该在哪里以及如何为这个特定场景初始化上下文。
更好的方法是将input
提取到单独的组件中,然后您可以在该组件中使用setFieldValue
:
const ImageInput = (props) = {
const [setFieldValue] = useFormikContext()
...
}
它起作用的原因是您的所有组件都由 formik Form
包装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.