我收到一个错误"A non-serializable value was detected in the state"该错误该错误已从日历组件连接到日期



我在应用程序中得到一个错误,即在状态中检测到一个不可序列化的值,通常它与PrimeAreact的日历组件中的日期格式连接。我在谷歌上搜索,如果我理解正确的话,原因是我的应用程序中的属性处理数据有对象类型,但要序列化,它应该是字符串。我说得对吗?

我面临的问题是,将此属性更改为CalendarProps中的字符串,从PrimeAreact值中,我选择的日期类型为date。是否可以将此格式更改为字符串?

以下是我从Typescript 得到的评论

(property) value?: Date | Date[] | undefined
No overload matches this call.
Overload 1 of 2, '(props: CalendarProps | Readonly<CalendarProps>): Calendar', gave the following error.
Type 'string' is not assignable to type 'Date | Date[] | undefined'.
Overload 2 of 2, '(props: CalendarProps, context: any): Calendar', gave the following error.
Type 'string' is not assignable to type 'Date | Date[] | undefined'.ts(2769)

我找到了可以关闭serializableCheck的解决方案,但我更愿意首先看看是否可以用其他方式修复这个错误。

const customizedMiddleware = getDefaultMiddleware({
serializableCheck: false
})

感谢

我在React中构建日历时遇到了这个问题。我提出的解决方案是将Date对象转换为时间戳,因为数字是可序列化的。

let timestamp = date.getTime();

此外,数字在内存中占用的空间比字符串小得多,所以好处加倍
要取回Date对象,只需根据时间戳构造一个新的Date

let date = new Date(timestamp);

相关内容

  • 没有找到相关文章

最新更新