Проблема была классической
при переходе на угловую универсальность всегда помните, что вы не можете использовать, как сказано здесь
окно, документ… и другиеобъекты браузера и их методы (например, setTimeout)
все API-интерфейсы DOM
все другие специфичные для браузера API, такие как localStorage, IndexedDB…
, проблема в том, что в большинствеЕсли вы не столкнетесь с какой-либо ошибкой или предупреждением об этом!
, и лучшим решением будет проверить платформу, а затем использовать ее там, где вам нужно, как показано ниже
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
@Injectable()
export class LocalStorage {
constructor(@Inject(PLATFORM_ID) protected platformId: Object) {}
setItem(key: string, value: any) {
if (isPlatformBrowser(this.platformId)) {
localStorage.setItem(key, JSON.stringify(value));
}
}
}