工具:hbuilder、charles、google瀏覽器、nox夜神模擬器
問題描述:將應用在瀏覽器中執行,不同使用者可以正常登陸,不存在快取問題。但是打成安裝包之後,放到真機或者夜神模擬器中,使用不同使用者登陸應用,發現當前使用者在個人資訊展示頁面看到的是前乙個使用者的資訊。
問題排查:因為在本地開發環境中無法重現問題,剛開始的想法是,檢查涉及到的**塊,是否有邏輯上的問題。以個人中心為例。
根據是否登陸標誌islogin來判斷是否跳轉到登入頁。在登入頁登陸之後,會使用vuex進行狀態管理,快取islogin、token、userinfoobj等資訊;並使用uni.setstorage方法進行本地快取,主要是token。
在模擬器中發起請求後,發現在登陸的login方法請求成功並返回token之後,再次發起獲取使用者資訊的getuserinfo方法時,通過uni.getstorage並沒有及時的拿到值。
這個就很奇怪了,為什麼會拿不到值吶?難道說是非同步同步的問題嗎?於是,我在快取部分的方法使用了同步快取。
結果發現還是不行,於是就再次修改了,獲取快取的地方。uni.getstorage修改為
打包後再測試,就發現可以了。
當然還有一種方式就是通過vuex獲取token值。這種方式沒有同步、非同步之分,只要將token值放入到state中,然後在發起請求的方法處在將token值拿到就可以了。
uni app 問題回顧
將scroll view的子元素的class 設定為 display inline block tabbar 自定義tabbar裡最好使用 cover view 和 cover image 來建立檢視 disablescroll true,true禁止滾動 false可以滾動按官方介紹 可以用cov...
自學uni app (6)資料快取
獲取資料 移除資料 api說明 獲取本地資料快取 獲取本地資料快取 設定本地資料快取 設定本地資料快取 獲取本地快取的相關資訊 獲取本地快取的相關資訊 刪除本地快取內容 刪除本地快取內容 清理本地資料快取 清理本地資料快取 將資料儲存在本地快取中指定的 key 中,會覆蓋掉原來該 key 對應的內容...
uniapp相容問題
如果想使用typescript開發 需要注意盡量使用原生的元件與api 少使用vue的語法 因為在編譯的時候會進行判斷會報語法之類的錯誤 plus.os.name 判斷系統 plus.android plus.ios 呼叫原生api native.js for android var njshell...