localStorage.setItem覆盖问题

浪子回头金不还
  • 38

localStorage.getItem("data");
localStorage.setItem("data", "status");

每次进入页面localStorage的data有个默认值, 但同时通过点击事件也要能更新这个status这个状态

我想到的是点击事件在加载页面的时候直接去调用不传参,但是每次调用都是传的null, 这样就无法做判断了

期望:

  1. 进入页面时候data里面有个默认值
  2. 用户点击的时候将data的值可以更新状态

如果用户点击了产生一个新状态刷新的时候就是用户点击的这个新状态,如果没有点击那么就是自动加载一个默认值

回复
阅读 4.4k
4 个回答

有个问题你是想强制默认值还是什么, 就是读取缓存数据没有就是默认值 有的话就是有值,

setStorage(data) {
    localStorage.setItem('data', data)
},
getStorage(defalutVal = 'val') {
    return localStorage.getItem('data') || defalutVal
}

getStorage 读取缓存数据 可以默认给一个默认值也可以写死默认值

setStorage(data) {
    localStorage.setItem('data', data)
},
getStorage(defalutVal = 'val') {
    if(localStorage.getItem('data') ! == defalutVal){
        this.setStorage(defalutVal)
    }
    return localStorage.getItem('data') || defalutVal
}

没看明白,这个本身就没有逻辑问题,data的值有或没有,很容易做出判断

localStorage.getItem("data")||"status";
点击正常设置就行;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏