value.isValid is not a function
当我导入数据时:我检查了几件事。首先,我检查数据是否是字符串(我知道我在做什么不正确,使用字符串创建了用于测试的虚拟数据,并且先前的日历组件还将字符串用于存储值),然后设置一些值。我并不是太担心使字符串值正常工作,所以实际数据更是如此。
import { DatePicker as MuiDatePicker } from "@mui/x-date-pickers";
...
const [startDate, setStartDate] = useState(null);
const [endDate, setEndDate] = useState(null);
...
return (
...
<MuiDatePicker
value={startDate}
onChange={(newStartDate) => {
setStartDate(newStartDate);
}}
disablePast
slotProps={{
textField: {
fullWidth: true,
placeholder: "Select a date range",
},
}}
/>
<MuiDatePicker
value={endDate}
onChange={(newEndDate) => {
setEndDate(newEndDate);
}}
disablePast
slotProps={{
textField: {
fullWidth: true,
placeholder: "Select a date range",
},
}}
/>
...
)
:
如果我将数据导入为 if (userItem.startDate !== null) {
if (typeof userItem.startDate === "string") {
setValue("userItem.startDate", moment(userItem.startDate));
setStartDate(moment(userItem.startDate));
} else {
setValue("userItem.startDate", userItem.startDate);
setStartDate(userItem.startDate);
}
}
DatePicker
:我得到这个错误:因此,我尝试了我所看到的其他东西,例如将值更改为
{ "$L": "en", "$d": "2025-02-07T05:00:00.000Z", "$y": 2025, "$M": 1, "$D": 7, "$W": 5, "$H": 0, "$m": 0, "$s": 0, "$ms": 0, "$x": {}, "$isDayjsObject": true }
。 这会导致某种无限的循环崩溃了应用程序,或者将日期设置为当前日期,而仅将日期设置为当前日期。
如果我尝试提取value={moment(startDate)}
甚至只是导入字符串并将其转换为时刻,那么我会得到相同的$d
错误。
value.isValid
使用
dayjs
,但这导致了一个错误,因此也没有运气。
我在这里有些损失 - 我认为任何解决方案都会出现错误。我如何正确处理这种数据?
value={dayjs(startDate)}