MUI DatePicker与Formik不兼容:date.isBefore不可用
P粉046387133
P粉046387133 2023-08-25 08:54:13
[JavaScript讨论组]
<p>我正在使用Formik在React中创建一个表单,同时也在使用MUI组件。问题是我遇到了以下错误:</p> <pre class="brush:php;toolbar:false;">date.isBefore不是一个函数 TypeError: date.isBefore不是一个函数 at DayjsUtils.isBeforeDay (http://localhost:3000/static/js/bundle.js:2319:19) at validateDate (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:10596:43) at useValidation (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:10654:27) at usePickerValue (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:10019:75) at usePicker (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:9876:94) at useDesktopPicker (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:7848:60) at DesktopDatePicker (http://localhost:3000/main.aa62b4b6c891ec5ff2b0.hot-update.js:3956:90) at renderWithHooks (http://localhost:3000/static/js/bundle.js:103306:22) at updateForwardRef (http://localhost:3000/static/js/bundle.js:105877:24) at beginWork (http://localhost:3000/static/js/bundle.js:107924:20)</pre> <p>这是我的代码:</p> <pre class="brush:php;toolbar:false;">&lt;Formik onSubmit={handleFormSubmit} initialValues={initialValuesProject} validationSchema={projectSchema} &gt; {({ values, handleChange, handleSubmit, setFieldValue }) =&gt; ( &lt;form onSubmit={handleSubmit}&gt; &lt;Box width=&quot;50%&quot;&gt; &lt;LocalizationProvider dateAdapter={AdapterDayjs}&gt; &lt;DatePicker id=&quot;project_start&quot; name=&quot;project_start&quot; value={values.project_start} slotProps={{ textField: { size: &quot;small&quot;, margin: &quot;dense&quot;, }, }} /&gt; &lt;DatePicker id=&quot;project_end&quot; name=&quot;project_end&quot; value={values.project_end} slotProps={{ textField: { size: &quot;small&quot;, margin: &quot;dense&quot; }, }} /&gt; &lt;/LocalizationProvider&gt; &lt;/Box&gt; &lt;/form&gt; )} &lt;/Formik&gt;</pre> <p>这是模式和初始值:</p> <pre class="brush:php;toolbar:false;">const projectSchema = yup.object().shape({ project_start: yup.date(), project_end: yup.date(), project_name: yup.string().required(&quot;required&quot;), usersId: yup.string(), partnerId: yup.string(), categoryId: yup.string(), }); const initialValuesProject = { project_start: Date.now(), project_end: Date.now(), project_name: &quot;&quot;, usersId: &quot;&quot;, partnerId: &quot;&quot;, categoryId: &quot;&quot;, };</pre> <p>非常感谢能帮助我的任何人 &lt;3</p> <p>能够使日期选择器工作</p>
P粉046387133
P粉046387133

全部回复(1)
P粉449281068

看起来问题出在这里:

project_start: Date.now(),
project_end: Date.now(),

project_start和project_end的类型应该是Dayjs:

import dayjs, { Dayjs } from 'dayjs';

const initialValuesProject = {
  project_start: dayjs(Date.now()),
  project_end: dayjs(Date.now()),
  project_name: "",
  usersId: "",
  partnerId: "",
  categoryId: "",
};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号