请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,为什么我封装的storage的setItem方法出现了获取不到storage的问题?

debug截图:
图片描述
index.js代码

const STORAGE_KEY='mall';
export default{
    // 封装storage存储(sessionStorage)
//特点:不会永久存储(区别于localstorage),随浏览器关闭而销毁。
    name:'storage',
    setItem(key,value,model_name){
        //设置对象中字段值
        if(model_name){
           let val=this.getItem(model_name);
            val[key]=value;
            this.setItem(model_name,val);
        }else{
            //设置值方法(存储storage值)
        let val=this.getStorage();
        val[key]=value;
        window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val));
        }
    },
    getItem(key,model_name){
        //获取对象中字段值,key为对象的字段名,model_name:对象
        if(model_name){
            let val=this.getItem(model_name);
            if(val){
                return val[key];
            }
        }
        // 直接获取对象,key为对象名
        return this.getStorage[key];
    },
    getStorage(){
        //获取整个storage
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');//将字符串转成json,当为空时,设置为json空对象
    },
    clear(key,model_name){
        //删除storage方法
        let val=this.getStorage();
        if(model_name){
            delete val[model_name][key];
        }else{
            delete val[key];
        }
        this.setItem(val);
    }
}

app.vue代码截图
图片描述

正在回答 回答被采纳积分+3

1回答

河畔一角 2022-09-14 12:45:47

看起来没啥问题,可以加一下课程群,下午我看一下代码。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕仙6370059 #1
    老师,我getItem方法里面的getStorage少了个括号,不小心,所以获取不到值
    回复 有任何疑惑可以回复我~ 2022-09-14 14:37:44
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号