Javascript 更新localStorage中对象的特定值
我想更新localStorage中对象的dataId字段。 对象: 我正在使用以下代码: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');
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”:非对象您可以通过共享您当前拥有的内容来更新您的代码吗?代码更新已完成您可以看到它