Javascript Formik Field API的onChange函数不';不能使用子组件
我试图将FormikFieldAPI中的material ui dropzone组件(它是上传文件!)作为子组件进行验证,但效果并不理想。我上载文件时出现此错误:Javascript Formik Field API的onChange函数不';不能使用子组件,javascript,reactjs,formik,yup,Javascript,Reactjs,Formik,Yup,我试图将FormikFieldAPI中的material ui dropzone组件(它是上传文件!)作为子组件进行验证,但效果并不理想。我上载文件时出现此错误: TypeError: can't access property "type", target is undefined 我已尝试重写onChange函数,以便将文件正确添加到表单对象中: field.onChange = (e) => { form.values.appLogo = e;
TypeError: can't access property "type", target is undefined
我已尝试重写onChange函数,以便将文件正确添加到表单对象中:
field.onChange = (e) => {
form.values.appLogo = e;
form.touched.appLogo = true;
}
但效果不好。对象表单包含我想要的内容,但是我的UI呈现了以前的状态,这是有问题的,因为我需要知道启用“下一个表单步骤”按钮时一切都正常
下面是我代码中有问题的部分:
const Step1 = (props) => {
return (
<Field name="appLogo">
{({ field, form, meta }) => (
/**
* Overriding of onChange
*/
<div>
{
(field.onChange = (e) => {
form.values.appLogo = e;
form.touched.appLogo = true;
})
}
<DropzoneArea
filesLimit={1}
acceptedFiles={["image/png"]}
dropzoneClass="dropzoneArea"
dropzoneText=""
showAlerts
{...field}
/>
</div>
)}
</Field>
);
};
const Step1=(道具)=>{
返回(
{({field,form,meta})=>(
/**
*覆盖onChange
*/
{
(field.onChange=(e)=>{
form.values.appLogo=e;
form.touch.appLogo=true;
})
}
)}
);
};
你能帮帮我吗?你不应该重写onChange函数。你能试着改用setFieldValue吗谢谢nguyễn-trần-t-m 我的问题最终通过以下代码得到解决:
<Field name="appLogo">
{({ field, form, meta }) => (
<DropzoneArea
filesLimit={1}
acceptedFiles={["image/png"]}
dropzoneClass="dropzoneArea"
dropzoneText=""
{...field}
onChange={(e) => {
props.setFieldValue("appLogo", e);
}}
showAlerts
/>
)}
</Field>
{({field,form,meta})=>(
{
props.setFieldValue(“appLogo”,e);
}}
显示警报
/>
)}
上载新文件时是否执行field.onChange?是。该函数执行得很好,但默认情况下它使用e.target.value,在我的例子中它返回未定义的值。我必须拯救e