Material UI DatePicker(TypeScript)报错:Property 'target' does not exist on type 'Dayjs'
Material UI DatePicker(TypeScript)报错:Property 'target' does not exist on type 'Dayjs'
嘿,我来帮你搞定这个问题~
你遇到这个TS警告的核心原因很简单:Material UI的DatePicker(尤其是基于Dayjs的版本)的onChange回调参数,根本不是你习惯的DOM事件对象!它直接返回的就是用户选中的Dayjs日期实例,所以你去访问e.target自然会报错——这个实例里根本没有target属性呀。
原来的代码里你写了:
onChange={(e) => setReminderDate(e.target.value.toISOString())}
其实只需要直接对传入的Dayjs对象调用toISOString()就可以了,修改后的代码应该是这样:
<MuiDatePicker id="reminderDate" name="reminderDate" label="Reminder Date" fullWidth={true} value={reminderDate} // 这里直接用Dayjs实例调用toISOString,不需要target onChange={(date) => setReminderDate(date.toISOString())} views={["month", "year", "day"]} disablePast={true} sx={{ paddingBottom: "12px" }} />
如果担心用户清空日期导致date为null的情况,还可以加个简单的判断,让代码更严谨:
onChange={(date) => setReminderDate(date ? date.toISOString() : '')}
另外小提醒下,你可以把参数名从e改成date,这样代码可读性会更高,一眼就能知道这个参数是日期实例,而不是事件对象~
备注:内容来源于stack exchange,提问作者user29826116
相关产品推荐
相关产品推荐

