reactjs - 如何使用打字稿写日期?
问题描述
如何使用打字稿写日期?
我在选择器中选择了一个日期,并尝试在状态中写入它,但出现错误,如何正确执行?
const [dateFrom, setDateFrom] = useState<Date | null>(new Date());
onChange={(e, v) => {
setDateFrom(v);
}}
ype '(e: Date | null, v: Date | null) => void' 不能分配给类型 '(date: Date | null, value?: string | null | undefined) => void'。参数 'v' 和 'value' 的类型不兼容。键入'字符串 | 空 | undefined' 不可分配给类型 'Date | 无效的'。类型“未定义”不可分配给类型“日期 | 无效的'。
解决方案
该错误告诉您您没有对值进行适当的检查:
键入'字符串 | 空 | undefined' 不可分配给类型 'Date | 无效的'。类型“未定义”不可分配给类型“日期 | 无效的'。
v 可能是string
, null
,undefined
并且您将它分配给一个变量Date
或null
。它们不是兼容的类型。
如果 v 是字符串,您应该强制转换创建日期,否则分配 null
onChange={(e, v) => {
setDateFrom(typeof v === 'string' ? new Date(v) : null);
}}
推荐阅读
- python - 如何将列表列表与python中的任何常见元素结合起来?
- javascript - 根据滚动位置在滚动上移动元素
- oracle - ORA-01830: 日期格式图片在 Oracle EBS 中转换整个输入字符串之前结束
- rust - 如何为函数指针参数指定通用生命周期?
- python - 即使文件中存在有效的 json,也无法解码 JSON 对象
- c++ - 隐式转换类模板
- automation - CRON JOB 每天下午 6 点运行脚本
- algorithm - 为什么 BIDE 使用半最大周期进行 serach 空间修剪?
- c# - 使用 AngleSharp 解析页面
- tunnel - 即使在注销服务器时如何保持 ngrok 运行