javascript - Datepicker 事件处理程序上的日期未更改
问题描述
我正在使用我遵循程序的材料 UI 日期选择器,但在事件处理程序上,日期没有改变,但我给出的初始值工作正常useState
。当我想选择我想要的日期时,我希望我的日期选择器工作顺利。Datepicker 的示例也在链接中
https://material-ui.com/components/pickers/#date-time-pickers https://codesandbox.io/s/z9k3z
import {
KeyboardDatePicker,
MuiPickersUtilsProvider,
} from "@material-ui/pickers";
import DateFnsUtils from "@date-io/date-fns";
import React, { useState } from "react";
function AddCar() {
const [date, setDate] = useState(new Date());
const addCar = (e) => {
e.preventDefault();
console.log(date.toLocaleDateString());
setDate(new Date());
};
return (
<div className="addCar">
<div>
<form className="addCar__form" onSubmit={addCar}>
{/* Date */}
<div className="addCar__mainForm row ">
<div className="col-lg-3 col-md-6 col-sm-12 my-2">
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM-dd-yyyy"
margin="normal"
label="Select Date"
value={date}
onChange={(e) => setDate(date)}
KeyboardButtonProps={{
"aria-label": "change date",
}}
/>
</MuiPickersUtilsProvider>
</div>
</div>
<button type="submit" className="btn btn-success">
ADD CAR
</button>
</form>
</div>
</div>
);
}
export default AddCar;
解决方案
将此行更改
onChange={(e) => setDate(date)}
为
onChange={setDate}
Codesandbox:https ://codesandbox.io/s/material-demo-forked-siueb?file=/addCar.js:939-957
推荐阅读
- jwt - 如何在 Electron App 中安全、正确地存储 JWT 令牌
- angular - 在 statustext 200 (OK) 之后,我得到一个错误并在控制台中泄漏数据。找到原因,但没有解决办法
- c++ - 如何检测 Wine 是从 Linux 运行还是从 C++ 中的 mac OS 环境运行?
- node.js - 如何处理路由的参数?
- c# - 为什么我动态创建的 TabPage 没有显示?
- python - 如何校正和识别图像中的短文本
- javascript - 如何在 Node 中将 DynamoDB 表从 PROVISIONED 更新为 PAY_PER_REQUEST?
- php - 具有一对一的“喜欢”关系的雄辩
- python - Project Euler 46 解决方案给出了一个错误的答案和正确的答案
- java - 有没有办法在我自己的应用程序中使用原生消息应用程序,在 android 上?