微信小程序使用pinia-plugin-persistedstate报错找不到localstorage

因为微信小程序种是没有localstorage.setItem的方法的。所以要再使用持久化之后改成一下存储方式

persist.ts

复制代码
import {PersistedStateOptions} from "pinia-plugin-persistedstate";

/**
 * @description pinia 持久化参数配置
 * @param {String} key 存储到持久化的 name
 * @param {Array} paths 需要持久化的 state name
 * @return persist
 * */
const piniaPersistConfig = (key: string, paths?: string[]) => {
    const persist: PersistedStateOptions = {
        key,
        storage: {
            setItem(key, value) {
                uni.setStorageSync(key, value) // [!code warning]
            },
            getItem(key) {
                return uni.getStorageSync(key) // [!code warning]
            },
        },
        // storage: sessionStorage,
        paths
    };
    return persist;
};

export default piniaPersistConfig;

然后在 定义缓存的内容就可以啦

复制代码
import { defineStore } from 'pinia'
import piniaPersistConfig from "./persist";//上面写的哪个文件
复制代码
export interface State {
  userInfo: any;
  globalData: any;
  timerLock: boolean;
  showLoading:boolean;
}
// @ts-ignore
export const useCommonStore = defineStore('pack-store', {
  persist: piniaPersistConfig("pack-store"),
  state: (): State => ({
    userInfo: {},
    globalData: {},
    timerLock: false, //是否关闭合成定时器
    showLoading:false,//loading是否显示
  }),
  getters: {},
  actions: {
    setuserInfo(state: State, data: any){
      this.userInfo = data;
    },
    setGlobalData(data: any){
      this.globalData = Object.assign({}, this.globalData, data);
      console.log("state.globalData", this.globalData);
    },
    logout(){
      uni.removeStorageSync("userInfo");
      uni.removeStorageSync("token");
      uni.removeStorageSync("openInfo");
      uni.clearStorage();
      uni.clearStorageSync();
      this.userInfo = {};
      this.timerLock = true;
    },
    setTimerLock (data: boolean){
      this.timerLock = data;
    },
    setChangeLoading(data:boolean){
      console.log("changeLoading",data)
      this.showLoading = data;
    },
  },
});
相关推荐
拖孩32 分钟前
我用 AI 搓了一个"比谁更持久"的微信小游戏,AI实现只用了一天,微信审核却用了一个月!!!
微信小程序·ai编程·游戏开发
河北清兮网络科技12 小时前
短剧 APP 产品说明
小程序·uni-app·短剧
AI品信智慧数智人21 小时前
文旅景区小程序集成数字人智能语音交互系统,山东品信解锁AI伴游新玩法✨
人工智能·小程序
医疗信息化王工1 天前
钉钉小程序开发实战:投诉管理系统
小程序·钉钉·开发·投诉管理
灵机一物1 天前
灵机一物AI原生电商小程序(已上线)-从“48 小时失联”到“长期可触达”:一套小程序公众号关注引导 + 订阅消息授权的产品化设计
小程序
碎像1 天前
掌握uniapp发布微信小程序、App(Android)
微信小程序·小程序·uni-app
程序媛徐师姐1 天前
Java基于SSM的实验室管理微信小程序,附源码+文档说明
java·微信小程序·实验室管理·实验室管理微信小程序·java实验室管理微信小程序·java实验室管理小程序·实验室管理小程序
CHU7290352 天前
生鲜团购商城小程序:新鲜触手可及的便捷购物新体验
小程序
医疗信息化王工2 天前
钉钉小程序开发实战:手术查询小程序
小程序·钉钉·手术查询
软件开发技术2 天前
新版点微同城主题源码34.7+全套插件+小程序前后端 源文件
小程序·php