如何将默认值设置为MUI DatePicker,而无需错误值。ISVALID?

问题描述 投票:0回答:0

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)}甚至只是导入字符串并将其转换为时刻,那么我会得到相同的enter image description here$d错误。

i我尝试使用

value.isValid

使用
dayjs

,但这导致了一个错误,因此也没有运气。 我在这里有些损失 - 我认为任何解决方案都会出现错误。我如何正确处理这种数据?

	
value={dayjs(startDate)}

reactjs material-ui mui-x-date-picker
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.