
- 发布:2024-02-23 17:53
- 更新:2024-02-26 11:40
- 阅读:295
【报Bug】uni-app vue3 使用pinia 在支付宝小程序中报错:“Cannot read properties of undefined (reading 'getItem')”
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 11
HBuilderX类型: 正式
HBuilderX版本号: 3.99
手机系统: 全部
手机系统版本号: Android 14
手机厂商: 华为
手机机型: 华为P40pro+
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
store/info.js
import { defineStore } from "pinia"
import { ref } from "vue"
export const useStore = defineStore('store', () => {
//token
const token = ref('')
const setToken = (newToken) => {
token.value = newToken
}
const removeToken = () => {
token.value = ''
}
return {
token, //登录token
setToken,
removeToken
}
}, {
persist: true //持久化存储(为了刷新页面,存储值不消失)
})
main.js
import { createSSRApp } from 'vue'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-persistedstate-plugin'
import App from './App.vue'
export function createApp() {
const app = createSSRApp(App)
const pinia = createPinia()
const persist = createPersistedState()
pinia.use(persist)
app.use(pinia)
return {
app
}
}
store/info.js
import { defineStore } from "pinia"
import { ref } from "vue"
export const useStore = defineStore('store', () => {
//token
const token = ref('')
const setToken = (newToken) => {
token.value = newToken
}
const removeToken = () => {
token.value = ''
}
return {
token, //登录token
setToken,
removeToken
}
}, {
persist: true //持久化存储(为了刷新页面,存储值不消失)
})
main.js
import { createSSRApp } from 'vue'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-persistedstate-plugin'
import App from './App.vue'
export function createApp() {
const app = createSSRApp(App)
const pinia = createPinia()
const persist = createPersistedState()
pinia.use(persist)
app.use(pinia)
return {
app
}
}
操作步骤:
onMounted(() => {
userInfo.value = store.userInfo ? store.userInfo : '';
})
onMounted(() => {
userInfo.value = store.userInfo ? store.userInfo : '';
})
预期结果:
预期正常使用
预期正常使用
实际结果:
vendor.js:3660 TypeError: Cannot read properties of undefined (reading 'getItem')
at getState (VM1792 index.worker.js:17705:26)
at VM1792 index.worker.js:17717:16
at VM1792 index.worker.js:17620:16
at EffectScope.run (VM1792 index.worker.js:11339:16)
at VM1792 index.worker.js:17619:27
at Array.forEach (<anonymous>)
at createSetupStore (VM1792 index.worker.js:17604:12)
at Object.useStore (VM1792 index.worker.js:17662:9)
at setup (VM1792 index.worker.js:39021:28)
at callWithErrorHandling (VM1792 index.worker.js:12668:21)
vendor.js:3660 TypeError: Cannot read properties of undefined (reading 'getItem')
at getState (VM1792 index.worker.js:17705:26)
at VM1792 index.worker.js:17717:16
at VM1792 index.worker.js:17620:16
at EffectScope.run (VM1792 index.worker.js:11339:16)
at VM1792 index.worker.js:17619:27
at Array.forEach (<anonymous>)
at createSetupStore (VM1792 index.worker.js:17604:12)
at Object.useStore (VM1792 index.worker.js:17662:9)
at setup (VM1792 index.worker.js:39021:28)
at callWithErrorHandling (VM1792 index.worker.js:12668:21)
bug描述:
uni-app vue3 使用pinia 在支付宝小程序中报错:“Cannot read properties of undefined (reading 'getItem')”
1 个回复
YUANRJ
请提供下测试工程