reactjs - “object Object”在 ReactJS 上使用 Formik 表单显示为输入值
问题描述
使用Formik
时,我的输入会显示一个[object Object]
值,而不是以标准方式表现。
import React from "react";
import ReactDOM from "react-dom";
import { Formik, Field, Form, ErrorMessage } from "formik";
import * as Yup from "yup";
import "./styles.css";
const SignupForm = () => {
return (
<Formik
initialValues={{ email: "" }}
validationSchema={Yup.object({
email: Yup.string()
.email("Mauvais e-mail")
.required("Champ requis")
})}
onSubmit={values => {
alert(JSON.stringify(values, null, 2));
}}
>
<Form>
<label htmlFor="email">Email</label>
<ErrorMessage name="email" />
<br />
<Field name="email" type="email" />
<button type="submit">OK</button>
</Form>
</Formik>
);
};
ReactDOM.render(<SignupForm />, document.querySelector("#root"));
解决方案
Formik
将初始值与name
字段的 匹配,而不是id
.
尝试使用它作为你的Field
:
<Field name="email" id="email" type="email" />
import React from "react";
import ReactDOM from "react-dom";
import { Formik, Field, Form, ErrorMessage } from "formik";
import * as Yup from "yup";
import "./styles.css";
const SignupForm = () => {
return (
<Formik
initialValues={{ email: "" }}
validationSchema={Yup.object({
email: Yup.string()
.email("Mauvais e-mail")
.required("Champ requis")
})}
onSubmit={values => {
alert(JSON.stringify(values, null, 2));
}}
>
{props => (
<Form>
<label htmlFor="email">Email</label>
<ErrorMessage name="email" />
<br />
<Field
name="email"
id="email"
type="email"
onChange={e => {
props.setTouched({ email: true });
props.handleChange(e);
}}
/>
<button type="submit">OK</button>
</Form>
)}
</Formik>
);
};
ReactDOM.render(<SignupForm />, document.querySelector("#root"));
您还可以查看文档以获取更多信息Field
推荐阅读
- c - 在 c 中使用 fprintf 写入文件
- python - 使用python从excel解析数据时如何删除/忽略某些行
- vb.net - 在偏移处重绘图片框并返回以模拟为按钮效果
- python - 您如何修复此功能的名称错误?
- java - 使用 charAt 方法和类型转换生成字符串中平均字母的输出
- ios - 你如何从 self.speechRecognizer?.recognitionTask(with: self.recognitionRequest!, resultHandler: { (result, error)?
- java - 当控制台屏幕缓冲区达到大小限制时,我可以清空它吗?
- amazon-cloudformation - 使用适当的策略设置 Cloudtrail s3 存储桶
- amazon-web-services - 获取无服务器框架在我的 serverless.yml 文件中创建的 API 网关资源的 ARN
- excel - 使用 WM_SETTEXT API 向 Skype 发送文本