Javascript 更新localStorage中对象的特定值

Javascript 更新localStorage中对象的特定值,javascript,reactjs,Javascript,Reactjs,我想更新localStorage中对象的dataId字段。 对象: 我正在使用以下代码: let loggedInUser = localStorage.getItem('user_id'); JSON.parse(loggedInUser).userId = parseInt(2000); localStorage.setItem('user_id', loggedInUser); 更新: let loggedInUser = localStorage.getItem('user_id');

我想更新localStorage中对象的dataId字段。 对象:

我正在使用以下代码:

let loggedInUser = localStorage.getItem('user_id');
JSON.parse(loggedInUser).userId = parseInt(2000);
localStorage.setItem('user_id', loggedInUser);
更新:

let loggedInUser = localStorage.getItem('user_id');
loggedInUser.dataId = parseInt(2000);
console.log('loggedInUser', JSON.stringify(loggedInUser));
localStorage.setItem('user_id', JSON.stringify(loggedInUser));

localStorage
中,所有值必须为字符串类型。因此,您必须在存储对象之前对其进行字符串化

localStorage.setItem('user_id', JSON.stringify(loggedInUser))

顺便说一句:在解析
user\u id
值之前(或封装在try/catch中),您应该检查该值。

localStorage
中,所有值必须是字符串类型。因此,您必须在存储对象之前对其进行字符串化

localStorage.setItem('user_id', JSON.stringify(loggedInUser))

顺便说一句:在解析用户id(或封装在try/catch中)之前,您应该检查它的值。

您可以执行类似的操作,并且应该在设置为localStorage之前对其进行字符串化:

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
let loggedInUserObj = {...loggedInUser, dataId : 2000}; // <---should be dataId
localStorage.setItem('user_id', JSON.stringify(loggedInUserObj));
let loggedInUser=JSON.parse(localStorage.getItem('user_id'));

让loggedInUserObj={…loggedInUser,dataId:2000};// 您可以执行类似的操作,并且在设置为localStorage之前应将其字符串化:

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
let loggedInUserObj = {...loggedInUser, dataId : 2000}; // <---should be dataId
localStorage.setItem('user_id', JSON.stringify(loggedInUserObj));
let loggedInUser=JSON.parse(localStorage.getItem('user_id'));
让loggedInUserObj={…loggedInUser,dataId:2000};// 这有助于:

let responseJson = {
                      id: user.id,
                      username: user.username,
                      firstName: user.firstName,
                      dataId: 1000
                   };

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
loggedInUser.dataId = parseInt(2000);
localStorage.setItem('user_id', JSON.stringify(loggedInUser));
这有助于:

let responseJson = {
                      id: user.id,
                      username: user.username,
                      firstName: user.firstName,
                      dataId: 1000
                   };

let loggedInUser = JSON.parse(localStorage.getItem('user_id'));
loggedInUser.dataId = parseInt(2000);
localStorage.setItem('user_id', JSON.stringify(loggedInUser));


保存到
localStorage
@HarunYilmaz时,需要
JSON.stringify
loggedInUser
对象是的,我更新了我的代码,但localStorage中仍然没有值更改您没有修改
loggedInUser
值,您正在修改解析的值,该值应该分配给一个变量,然后重新编码。当保存到
localStorage
@HarunYilmaz时,需要
JSON.stringify
loggedInUser
对象,应该将其分配给一个变量,然后重新编码。感谢您的回复,但您的代码只是添加了新字段,而没有更新当前可用字段。@varindersoh是的。您应该先将字符串解析为对象,然后对其进行分解以进行更新。在您的问题中,有一件事是您发布来更新
userId
而不是
dataId
。感谢您的回复,但您的代码只是添加了新字段,而不是更新了当前可用字段。@varindersoh是的。您应该先将字符串解析为对象,然后对其进行分解以进行更新。在您的问题中,有一件事是您发布来更新
用户ID
而不是
数据ID
。它不起作用Hello@VarinderSohal,您收到了什么错误?无法在{}上分配属性“dataId”:非对象您可以通过共享您当前拥有的内容来更新您的代码吗?代码更新已完成您可以看到它不工作Hello@Variandershal,您遇到了什么错误?无法在{}上分配属性“dataId”:非对象您可以通过共享您当前拥有的内容来更新您的代码吗?代码更新已完成您可以看到它