как сделать угловое обновление текущего пользовательского значения имени пользователя в локальном хранилище - PullRequest
0 голосов
/ 07 ноября 2019

how to update localstorage of a currentsUser for only username when i update username its not reflecting in localstorage,am able to see the change in component page

in console application localstorage null is stored key and value is {username:gasd} it's not joining in that json. of currentUser

как обновить локальное хранилище текущего пользователя только для имени пользователя, когда яобновить имя пользователя, которое не отражается в localstorage, я могу видеть изменение страницы компонента в консоли, получаю нулевое значение для элемента, и в консольном приложении localstorage null хранится ключ, а значение {username: gasd} не присоединяется к этому json. используя angular6

  let item =localStorage.getItem(this.currentUser);
  console.log(item);
  let myobj = {username:changeValue};
  localStorage.setItem(item, JSON.stringify(myobj));

1 Ответ

0 голосов
/ 07 ноября 2019

Думайте о localStorage как словаре значений ключа.
Вы используете строковые ключи для получения / установки строковых значений. (подробнее об этом в Документы MDN )
Так что для объектов вы можете сделать, например:

let myObj = {};
my["myKey"] = "myVal"; // note that in objects, values don't need to be strings
my["myKey2"] = 2;
my["myKey3"] = {};

В localStorage, однако, это строки с обеих сторон:

localStorage.setItem("currentUser", {username: "ganes"}); // BAD
localStorage.setItem({username: "ganes"}, "someValue"); // BAD
localStorage.getItem({username: "ganes"}) // BAD

let currentUserDataStr = localStorage.getItem("currentUser"); // GOOD
// something along these lines
let currentUserData = JSON.parse(currentUserDataStr);
// do some mutation on currentUserData
currentUserData.currentUser = "ganesNew"
let newUserDataStr = JSON.stringify(currentUserData)
localStorage.setItem("currentUser", newUserDataStr); // GOOD
...