亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue儲存storage時含有布爾值的解決方案

 更新時間:2021年06月04日 09:50:11   作者:深圳最菜的前端  
這篇文章主要介紹了vue儲存storage時含有布爾值的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue儲存storage時含有布爾值

今天遇到一個問題,需要將后臺返回的true和false存到storage中去,然后用儲存的這個值進行邏輯判斷,但是一直判斷都是錯誤的,后面查閱了一下資料才發(fā)現(xiàn)

在localstorage中儲存數(shù)據(jù)的時候,儲存的boolean值都會變成字符串,而不是剛開始儲存進去的boolean值

在這里插入圖片描述

都變成了字符串

那么怎么解決呢?

一:前端進行一次轉(zhuǎn)化

if (localStorage.getItem('布爾值') == 'true') {
		// 重新賦值為新的值
		'布爾值' = true
}

或者是在儲存的時候,就不要用boolean值進行存儲,用數(shù)字或者是其他的進行代替,然后判斷就是了

// 后臺返回的值是true
if (true) {
	localStorage.setItem('布爾值', 1)
}else {
	localStorage.setItem('布爾值', 2)
}
// 需要用的時候
if (localStorage.getItem('布爾值') == 1) {
	// 處理事件
}else {
	// 處理事件
}

localstorage存儲布爾值的一次坑

問題描述

最近工作中使用localstorage存貯一些共享的變量,結(jié)果在存貯布爾值的時候遇到了很多問題;

一般情況下,存取如下:

localstorage.setItem('key', value);//存
localstorage.getItem('key');//取

但是在存儲布爾型數(shù)據(jù)時,由于localstorage中存儲的boolean數(shù)據(jù)都變成了字符串,故"true"=true及"false"==false,“true”==false顯示都為false,導(dǎo)致嘗試了很多次都沒有找到問題所在;

最終解決方法

當 localstorage 或 sessionstorage 存儲布爾值數(shù)據(jù)時,取到的數(shù)據(jù)變成了字符串'true' 'false',建議在存儲該類型數(shù)據(jù)時將 value 設(shè)置為 0、1,取值時用Number(localstorage.getItem('key')),再進行后續(xù)判斷操作;

具體代碼如下所示:

存值:

if (this.isChecked) {
      //0:checked
      localStorage.setItem("checked",0);
} else {
       //1:not checked
       localStorage.setItem("checked",1);
}      

取值:

getFlag:function(){
    var flag=Number(localStorage.getItem('checked'));
    if(flag==0){
         this.flag=true;
     }else if(flag==1){
          this.flag=false;
     }
}

總結(jié):

localStorage和sessionStorage都只能存儲字符串類型的對象,對于JS中常用的數(shù)組或?qū)ο髤s不能直接存儲;

可以通過JSON對象提供的parse和stringify將其他數(shù)據(jù)類型轉(zhuǎn)化成字符串,再存儲到storage中就可以了;

代碼如下:

存值:

localStorage.setItem("flag_data",JSON.stringify(flagData));

取值:

var flag_data=JSON.parse(localStorage.getItem("flag_data"));

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論