Javascript 未修复:在页面加载时,localStorage开始工作,但突然无缘无故地被清除?

Javascript 未修复:在页面加载时,localStorage开始工作,但突然无缘无故地被清除?,javascript,angular,local-storage,Javascript,Angular,Local Storage,在我的项目中,我将ShoppingCart的id值存储为本地存储中的cartId。当页面第一次加载时,它获得的值与此屏幕截图中的值一样好: 但是在初始化页面并且成功检索ShoppingCart对象并将其应用于页面之后,localStorage会以某种方式被清除,localStorage.getItem('cartId')返回null,如第二幅图像的控制台中所示 因此,在整个项目中,与ShoppingCart交互的任何后续操作都将在后台创建一个新的ShoppingCart,并将新的cartId

在我的项目中,我将ShoppingCart的id值存储为本地存储中的cartId。当页面第一次加载时,它获得的值与此屏幕截图中的值一样好:

但是在初始化页面并且成功检索ShoppingCart对象并将其应用于页面之后,localStorage会以某种方式被清除,localStorage.getItem('cartId')返回null,如第二幅图像的控制台中所示

因此,在整个项目中,与ShoppingCart交互的任何后续操作都将在后台创建一个新的ShoppingCart,并将新的cartId存储在localStorage中(如下面的第三幅图所示),如果刷新页面,将再次擦除该cartId


在Chrome 71.0.3578.98版、Windows 10和我的电脑上都可以观察到这种行为,我的电脑还有很多内存。有人能解释一下为什么会这样吗?我可能应该避免像这样直接使用localStorage,但这种行为实在是太奇怪了,我简直不敢相信

只有在将其设置回null的某个位置时,才可能发生这种情况。我建议您将调试点放在
localStorage.setItem('cardId',…)
,然后查看正在设置的值。

也可以放在
localStorage.clear()的位置
删除本地存储。cardId
但这不会发生在我的Mac电脑上,只会发生在Windows上的Chrome上,因此这似乎不是由我的代码完成的。请仔细检查您的代码,它必须已从某个组件/服务中清除