localStorage не назначает ключ, но вместо этого ключ имеет значение данных - PullRequest
0 голосов
/ 08 ноября 2018

Проект Angular 6: я не могу установить ключ для localStorage и не могу получить данные локального хранилища

Может ли кто-нибудь помочь мне с этим?

UserService.service.ts:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root' 
})
export class UserService {

authToken;
user;

constructor(private http: HttpClient) { }


addUser(a) {
  return this.http.post('/api/register', a);
}

authUser(data) {
  return this.http.post('/api/login', data);
}

storeUserData(token, user) {
 this.authToken = token;
 this.user = user;
 let akey = localStorage.key('token');
 let bkey = localStorage.key('userData');
 localStorage.setItem(akey, this.authToken);
 localStorage.setItem(bkey, JSON.stringify(this.user));

 //OR

 localStorage.setItem('token', token);
 localStorage.setItem('userData', user);

}

}

User.component.ts: Функция для вызова сервисной функции

loginUser(data) {
this.userService.authUser(data).subscribe(data => {
  console.log(data.user);
  if(!data.success) {
    this.authErr = true;
    console.log('Error Occured!');
  } else {
    this.authErr = false;
    this.router.navigate(['/dashboard']);
    this.userService.storeUserData(data.token, data.user);
  }
});
}

Это значение, которое я имею в своем местном хранилище

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018

Есть ли у вас панель значений, закрывающая список ключей / значений localalstorage?

Вот как выглядит список локального хранилища на моем ПК:

enter image description here

Обратите внимание, что на горизонтальную полосу в центре можно щелкнуть и перетащить при наведении курсора.

На снимке экрана, который вы разместили, похоже, что нижняя половина панели была перетащена вверх, поэтому онапокрывая верхнюю половину, так что вы на самом деле не смотрите на клавиши.Как это

enter image description here

0 голосов
/ 09 ноября 2018

Просто попробуйте с

localStorage.setItem("userKey", JSON.stringify(this.user));

Убедитесь, что user не null или undefined,

0 голосов
/ 08 ноября 2018

Я подозреваю, что ваш код никогда не вызывается. Посмотрите на эти две строки:

this.router.navigate(['/dashboard']);
this.userService.storeUserData(data.token, data.user);

Похоже, что сначала вы перемещаетесь, а затем пытаетесь сохранить данные. Что произойдет, если вы поменяете местами?

...