相关疑难解决方法(0)

React Formik:如何使用自定义onChange和onBlur

我开始使用formik库进行反应,我无法弄清楚道具handleChange和handleBlur的用法.

根据文档,handleBlur可以设置为a上的prop <Formik/>,然后必须手动向下传递给<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 }) => …
Run Code Online (Sandbox Code Playgroud)

javascript forms reactjs

27
推荐指数
1
解决办法
2万
查看次数

如何处理 Formik 的 `handleChange` 属性?

我知道它Field有一个onChange属性,您可以从这里传递自己的 FormikonChange道具:https://jaredpalmer.com/formik/docs/api/formik#handlechange-e-reactchangeevent-any-void

但是,我很难理解这些value[key]传递的位置,因此我可以处理表单中传递的数据。在withFormik(): How to use handleChange中发现我可以将两个回调传递给 Formik 的onChangeprop,但我想知道是否有更好的方法来处理这个问题。

根据回复者的评论进行编辑,谢谢:

我的代码在 onChange 属性中使用这两个回调Field

export default function FormikForm() {
  const onSubmitHandler = (formValues, actions) => {
    console.log(formValues);
    console.log(actions);
  };

  const onChangeHandler = (e) => {
    console.log(e.target.value);
  };

  return (
    <div>
      <h1>This is the Formik Form</h1>
      <Formik
        initialValues={{
          name: "",
          email: "",
          age: ""
        }}
        onSubmit={onSubmitHandler}
        render={props => {
          return (
            <Form>
              <label>
                Name
                <Field
                  name="name" …
Run Code Online (Sandbox Code Playgroud)

reactjs formik

5
推荐指数
1
解决办法
9309
查看次数

标签 统计

reactjs ×2

formik ×1

forms ×1

javascript ×1