gpt4 book ai didi

javascript - Formik,子组件中的useField()?

转载 作者:行者123 更新时间:2023-12-04 11:04:07 33 4
gpt4 key购买 nike

我正在开发一个单独的模块,该模块旨在包含支持 HTML 输入元素的 formik。

问题是我无法使用 useFields()钩子(Hook),因为我的模块组件没有连接到 formik 上下文。

这是我位于不同模块中的组件:

import React from "react";
import PropTypes from "prop-types";
import { useField } from "formik";

export function TextField({ label, ...props }) {
const [field, meta] = useField(props);
return <input {...field} {...meta} />;
}

TextField.propTypes = {
name: PropTypes.string.isRequired,
label: PropTypes.string,
showErrors: PropTypes.bool
};

TextField.defaultProps = {
label: "",
showErrors: true
};

export default TextField;

这是我的Formik表格:
<Formik
initialValues={{
firstName: "firstName"
}}
onSubmit={(values, actions) => {
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
actions.setSubmitting(false);
}, 1000);
}}
>
{formik => (
<Form>
<TextField name="firstName" />
<button type="submit">Submit</button>
</Form>
)}
</Formik>

无论我做什么,我都会收到以下错误:

TypeError: Cannot read property 'getFieldProps' of undefined



有人知道我做错了什么吗?

最佳答案

the useField docs我希望:

<input {...field} {...props} />
输入组件不需要 {...meta} Prop 。
除此之外,我无法重现您的错误。

关于javascript - Formik,子组件中的useField()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60492908/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com