#angular #typescript #local-storage #session-storage
#angular #машинописный текст #локальное хранилище #сеанс-хранилище
Вопрос:
Следующий код работает, если я делаю одно изменение: замена localStorage
на sessionStorage
.
Кто-нибудь может объяснить почему? Насколько мне известно, они идентичны по функциональности и отличаются только тем, что sessionStorage ограничен вкладкой.
read(key: string): any {
const item = localStorage.getItem(key);
return JSON.parse(item);
}
write(key: string, value: any): void {
localStorage.setItem(`${key}`, JSON.stringify(value));
}
Комментарии:
1. В обоих случаях я получаю сообщение об ошибке typescript, потому
item
что может бытьnull
, и вы не можете позвонитьJSON.parse(null)
. Это может помочь :return item ? JSON.parse(item) : undefined;
. Если это не так, пожалуйста, обновите свой пост точным текстом ошибки, которую вы получаете.2. Очистка кэша решила эту проблему. Вероятно, проблема была вызвана предыдущим упущением в неиспользовании
stringify
, что привело к хранению недопустимого содержимого.