javascript - Formik:将 Material UI Date Picker 作为道具传递给 React 组件时,目标未定义
问题描述
我正在尝试创建一个可重用的组件。我将表单字段作为道具传递的地方。当我单击日期选择器字段时。我收到此错误:
类型错误:目标未定义
我怎样才能解决这个问题?
这是我的输入组件的样子:
import { useField } from 'formik';
import { DatePicker } from '@material-ui/pickers';
export const DatePickerField = ({ label, ...props }) => {
const [field, meta] = useField(props);
return (
<DatePicker label={label} fullWidth {...field} {...props} />
);
};
以下是可重用组件的外观:
import { Form } from 'formik'
export const ReusableComp = ({ fields }) => (
<Form noValidate>
{fields}
</Form>
)
这是我使用这个组件的地方:
export const App = () => (
<ReusableComp fields={
<div className='mb-3'>
<DateTimePickerField
label='Start DateTime'
name='start_date_time'
/>
</div>
} />
)
的结果console.log(fields)
解决方案
就我而言,我使用的是 Material UI DesktopDatePicker(带有 Typescript),并像这样定义 onChange 道具解决了它:
onChange={(value): void => {
formik.setFieldValue("dueDate", value);
}}
您必须用您的 formik 值名称替换“dueDate”。
推荐阅读
- revit-api - Revit API:维护多个 API 版本的代码
- javascript - 使用递归
- terraform - 为什么 terraform 在以下琐碎场景中无法正确计算局部变量?
- php - magento1.9.1 有没有办法让它在 xampp 3.2.4 上与 php7.4.4 一起工作
- android - 带有图像的 Android Firebase 通知不起作用
- c# - 无法在 EF 访问的存储过程中将 NVARCHAR 转换为 datetime2
- excel - 如何以这种方式将数据粘贴到列和行中
- java - 为什么我在 Java 中使用级联 if 时会出现错误?
- javascript - JS CryptoJS 加密 -> PHP OpenSSL 解密:密码改变长度
- java - 如何从注释处理器创建文件名中带有空格的资源