如何解决这个“TypeError: date.locale”?我正在尝试解决这个问题,但尽管我很努力,但我无法找到解决方案。
API响应:
{
"birthday": "1999-03-09T00:00:00.000Z"
}
更改日期格式
useEffect(() => {
if (currentRecord) {
const formattedBirthday = dayjs(currentRecord.birthday)
.tz("Asia/Dhaka")
.format("YYYY-MM-DD");
setCurrentRecord({
...currentRecord,
birthday: formattedBirthday,
});
form.setFieldsValue({
birthday: moment(formattedBirthday),
});
}
}, [currentRecord, setCurrentRecord, form]);
新日期:
birthday: "1999-03-09"
JSX-
<Form.Item
label="Birthday"
name="birthday"
rules={[
{ required: true, message: "Please select a birthday!" }
]}
>
<DatePicker
style={{ width: "100%" }}
placeholder="Select your birthday"
format={dateFormat}
/>
</Form.Item>
问题是您将
moment
与 dayjs
一起使用。在 docs 之后,您应该仅使用 dayjs
来处理与时间相关的值:
useEffect(() => {
if (currentRecord) {
const formattedBirthday = dayjs(currentRecord.birthday)
.tz("Asia/Dhaka")
.format("YYYY-MM-DD");
setCurrentRecord({
...currentRecord,
birthday: formattedBirthday
});
form.setFieldsValue({
birthday: formattedBirthday // removed moment
});
}
}, [currentRecord, setCurrentRecord, form]);
<Form.Item
label="Birthday"
name="birthday"
rules={[
{ required: true, message: "Please select a birthday!" }
]}
>
<DatePicker
style={{ width: "100%" }}
placeholder="Select your birthday"
// or an array with all styles your field should accept
// eg.: ['YYYY-MM-DD', 'YY-MM-DD', 'DD-MM-YY']
format={'YYYY-MM-DD'}
/>
</Form.Item>