我正在try 将Day.js与Material-UIDatePicker
组件一起使用在我的Reaction项目中.但是,当我将minDate
和maxDate
属性设置为Day.js对象时,我收到一个打字错误:
Type 'Dayjs' is missing the following properties from type 'Date': toDateString, toTimeString, toLocaleDateString, toLocaleTimeString, and 35 more.
我知道DatePicker
期望minDate
和maxDate
是Date
类型,但Day.js返回Dayjs
对象.
代码:
import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import { DatePicker } from "@mui/x-date-pickers/DatePicker";
import dayjs from "dayjs";
interface DatepickerProperties {
label: string;
onChange: (value: Date | null) => void;
disablePast?: boolean;
}
function Datepicker({
label,
onChange,
disablePast = false,
}: DatepickerProperties) {
return (
<LocalizationProvider dateAdapter={AdapterDayjs}>
<DatePicker
disablePast={disablePast}
label={label}
onChange={onChange}
minDate={dayjs()}
maxDate={dayjs("9999-12-31")}
/>
</LocalizationProvider>
);
);
}
Expected Behavior:
我希望DatePicker
组件接受minDate
和maxDate
作为Day.js对象,而不会出现任何打字错误.
一百零二
在对minDate
和maxDate
使用Day.js对象时,我收到了上面提到的打字错误.
What I've tried:
我try 使用toDate()
将Day.js对象转换为Date对象,但这又导致了一系列错误:
AdapterDayjs.js:384 Uncaught TypeError: value.isAfter is not a function
at AdapterDayjs.isAfterDay (AdapterDayjs.js:384:22)
at getDefaultReferenceDate (getDefaultReferenceDate.js:53:38)
at Object.getInitialReferenceValue (valueManagers.js:21:12)
at useFieldState.js:58:41
at mountState (react-dom.development.js:16986:20)
at Object.useState (react-dom.development.js:17699:16)
at Object.useState (react.development.js:1622:21)
at useFieldState (useFieldState.js:48:35)
at useField (useField.js:29:7)
at useDateField (useDateField.js:29:10)
我怎样才能妥善解决打字错误(S)?