Javascript 错误对象返回未定义的formik,带有yup
我正在尝试用Formik和Yup(用于验证)生成一个表单。我已经创建了yup对象形状,将初始值设置为formik,但验证仍然不起作用。formik的错误道具返回未定义Javascript 错误对象返回未定义的formik,带有yup,javascript,reactjs,formik,yup,Javascript,Reactjs,Formik,Yup,我正在尝试用Formik和Yup(用于验证)生成一个表单。我已经创建了yup对象形状,将初始值设置为formik,但验证仍然不起作用。formik的错误道具返回未定义 import React from "react"; import { Formik, Form, Field } from "formik"; import * as Yup from "yup"; const schema = Yup.object().shape({ email: Yup.string() .l
import React from "react";
import { Formik, Form, Field } from "formik";
import * as Yup from "yup";
const schema = Yup.object().shape({
email: Yup.string()
.label("Email")
.required("Enter a valid email")
.email()
});
class OneForm extends React.Component {
state = {
email: ""
};
render() {
return (
<>
<Formik
initialValues={{
email: ""
}}
onSubmit={(values, actions) => {
console.log(values);
this.setState({
email: values.email
});
setTimeout(() => {
actions.setSubmitting(false);
actions.resetForm();
}, 1000);
}}
validationSchema={schema}
>
{props => {
return (
<Form>
{console.log(props.errors)}
<Field
type="email"
placeholder="Email"
name="email"
onChange={props.handleChange}
/>
{props.errors.email && <p>{props.errors.email}</p>}
<br />
<button
disabled={props.isSubmitting}
type="submit"
onClick={props.handleSubmit}
>
Submit
</button>
</Form>
);
}}
</Formik>
</>
);
}
}
export default OneForm;
从“React”导入React;
从“Formik”导入{Formik,Form,Field};
从“Yup”导入*作为Yup;
const schema=Yup.object().shape({
电子邮件:Yup.string()
.标签(“电子邮件”)
.必填(“输入有效电子邮件”)
.email()
});
类OneForm扩展了React.Component{
状态={
电子邮件:“
};
render(){
返回(
{
console.log(值);
这是我的国家({
电子邮件:values.email
});
设置超时(()=>{
动作。设置提交(错误);
actions.resetForm();
}, 1000);
}}
validationSchema={schema}
>
{props=>{
返回(
{console.log(props.errors)}
{props.errors.email&&p>{props.errors.email}}
提交
);
}}
);
}
}
导出默认表单;
有人能帮我吗?似乎他们在这方面有一个积极的问题:
但是,似乎有些人也解决了这个问题。这里有什么帮助吗?似乎在chrome或firefox上为我@ksav工作?顺便说一句,表单工作正常,但验证不起作用。您是否看到空白提交上的任何警告?控制台在使用Chrome74提交空白表单时记录
{email:“输入有效电子邮件”}
,这不意味着验证正在工作吗?chrome或firefox上的@ksav似乎正在为我工作?顺便说一句,表单工作正常,但验证不起作用。您是否在空白提交上看到任何警告?控制台使用Chrome74在空白表单提交上记录{email:“输入有效电子邮件”}
,这是否意味着验证正在工作?