作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 formik 开始库用于 react ,我无法弄清楚 Prop handleChange和handleBlur的用法。
根据the docs ,handleBlur 可以设置为<Formik/>
上的 Prop 。 ,然后必须手动向下传递到 <input/>
。
我已经尝试过,但没有成功:(为了更清楚,我保留了有关handleBlur的代码)
import React from "react";
import { Formik, Field, Form } from "formik";
import { indexBy, map, compose } from "ramda";
import { withReducer } from "recompose";
const MyInput = ({ field, form, handleBlur, ...rest }) =>
<div>
<input {...field} onBlur={handleBlur} {...rest} />
{form.errors[field.name] &&
form.touched[field.name] &&
<div>
{form.errors[field.name]}
</div>}
</div>;
const indexById = indexBy(o => o.id);
const mapToEmpty = map(() => "");
const EmailsForm = ({ fieldsList }) =>
<Formik
initialValues={compose(mapToEmpty, indexById)(fieldsList)}
validate={values => {
// console.log("validate", { values });
const errors = { values };
return errors;
}}
onSubmit={values => {
console.log("onSubmit", { values });
}}
handleBlur={e => console.log("bluuuuurr", { e })}
render={({ isSubmitting, handleBlur }) =>
<Form>
<Field
component={MyInput}
name="email"
type="email"
handleBlur={handleBlur}
/>
<button type="submit" disabled={isSubmitting}>
Submit
</button>
</Form>}
/>;
这种方法有什么问题吗?实际上应该如何使用handleBlur和handleChange?
最佳答案
您需要从 Formik
中删除第一个 handleBlur
,因为模糊事件仅在字段级别有效,并在 Field 元素中执行类似以下操作:
<Field
component={MyInput}
name="email"
type="email"
onBlur={e => {
// call the built-in handleBur
handleBlur(e)
// and do something about e
let someValue = e.currentTarget.value
...
}}
/>
关于javascript - react 福米克 : how to use custom onChange and onBlur,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48466920/
我有一小段代码来解释我要测试的代码库。我已经跳过检查错误以使问题简短。 func lastCNAME(domain string) (lastCNAME string) { ns :=
我是一名优秀的程序员,十分优秀!