react-datepicker 没有将 setState 设置为 dd/MM/yy

react-datepicker doesn't setState to dd/MM/yy

日期以正确的格式显示 (31/08/21),但 onChange 将开始日期设置为如下所示:

Tue Aug 31 2021 21:29:17 GMT+0200 (Mitteleuropäische Sommerzeit)

如何保存我显示的格式?

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

export default function Bodyweight() {
  
const [startDate, setStartDate] = useState(new Date());

return(
<div>
  <DatePicker
          dateFormat="dd/MM/yy"
          selected={startDate}
          onChange={(date) => setStartDate(date)}
        />
</div>
)}

您的 DatePicker 组件接受 Tue Aug 31 2021 21:29:17 GMT+0200 (Mitteleuropäische Sommerzeit) 格式的日期。

它还有 returns 相同格式的日期。

要将日期转换为所需格式,您的选择不多。

  1. 如果 DatePicker 是您自己的组件,请检查其实现并修改代码,使其 returns 以所需格式显示日期。

  2. 如果选项 1 不可行,则手动将日期转换为所需格式。请注意,您可能需要第三个变量来存储格式化日期,因为您的 DatePicker 组件接受实际日期对象而不是字符串。

参考此 link 以 req 格式转换日期。 Format JavaScript date as yyyy-mm-dd

只需在初始状态集中使用 new Date().toLocaleDateString(),即

const [startDate, setStartDate] = useState(new Date().toLocaleDateString());

我是按照我的理解来回答的,如果这不是你要找的解决方案,欢迎评论指正