开发者问题收集

无法使用 formik 中的 FastField 读取未定义的属性(读取‘getFieldProps’)

2022-03-09
7338

我有一个包含 Formik 的表单,我想减少重新渲染,因此我使用了 FastField。 我收到错误 无法读取未定义的属性(读取“getFieldProps”) ,我不知道如何解决它。

完整代码在 这里

我在 这里 这里

import React from "react";
import ReactDOM from "react-dom";
import { useFormik, FastField } from "formik";
import * as yup from "yup";
import Button from "@material-ui/core/Button";

const validationSchema = yup.object({});

const WithMaterialUI = () => {
  const formik = useFormik({
    initialValues: {
      firstName:''
    },
    validationSchema: validationSchema,
    onSubmit: (values) => {
      alert(JSON.stringify(values, null, 2));
    }
  });

  return (
    <div>
      <form onSubmit={formik.handleSubmit}>
        <label htmlFor="firstName">First Name</label>
        <FastField name="firstName" placeholder="Weezy" />
        <Button color="primary" variant="contained" fullWidth type="submit">
          Submit
        </Button>
      </form>
    </div>
  );
};

ReactDOM.render(<WithMaterialUI />, document.getElementById("root"));
1个回答

文档 中,您将找到

** Be aware that , , , connect(), and will NOT work with useFormik() as they all require React Context.

因此,如果您想使用 <FastField/> ,则不能继续使用该钩子,因此我猜您必须回退到使用 <Formik> 组件包装表单的旧样式

Louay Al-osh
2022-05-28