Как изменить заданный элемент localalstorage в vuex? - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу изменить, укажите localstorage элемент в vuex.

Например, у меня есть localstorage элемент, подобный этому:

{
  'id' = 1, 'another' = 2
}

Я хочу изменить только idКак я могу это сделать?

Я просто знаю базовое использование, как это:

localStorage.setItem("user", JSON.stringify(state.currentUser))

Я пробовал что-то подобное, но похоже, что он не работает

localStorage.setItem("user.id", "2")

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Вы не можете точно, потому что localStorage хранит все как строки.Лучше всего просто заменить весь объект на JSON.stringify - снова после его изменения.

По существу:

// Get the user from localStorage and parse into object
let user = JSON.parse(localStorage.getItem("user"));
// Update an attribute on the user object
user.id = 2;
// Update the user in localStorage and stringify to string
localStorage.setItem("user", JSON.stringify(user));
1 голос
/ 27 сентября 2019

Вы можете использовать getItem() для получения текущего значения и spread operator для назначения значений следующим образом:

const newValue = {
   ...JSON.parse(localStorage.getItem("user")),
   id: 2
}

localStorage.setItem("user", JSON.stringify(newValue))
...