所以我最终找到了原因并想出了一个解决方法。Windows 论坛上的用户发布了此相关问题,并在 Edge 用于格式化日期的 Windows 系统 dll 中发现了根本原因:https : //social.msdn.microsoft.com/Forums/windowsapps/en-US/dce1f04c-8c06 -4398-93a5-127393a428dd/uwpccalendarchangetimezone-throws-eunexpected?forum=wpdevelop
本质上,它是由应该在 Windows 更新期间删除的注册表值引起的,但在某些系统上它仍然存在,因此该函数会抛出。为了验证它是相同的原因,我在受影响的系统上删除了这个注册表值(它是一个过时的时区)并解决了这个问题:
HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion\Time Zones\Armenian Standard Time
显然我不想强迫我的用户更新他们的注册表,所以当我的应用程序启动时,Intl
如果它在该浏览器中损坏,我会填充api 的那部分:
// Only polyfill DateTimeFormat if the call fails
try {
new Intl.DateTimeFormat().format();
} catch (error) {
Object.defineProperty(Intl, 'DateTimeFormat', {
value: DateTimeFormatPolyfill,
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句