有如下代码:
声明了一个app store
import { getAppAll } from '@/api/app';
import { defineStore } from 'pinia';
import { IAppInfo } from '@/utils/types';
import { store } from '@/store';
export const useAppStore = defineStore('app', {
state: () => ({
appList: [],
}),
getters: {
appList: (state) => {
console.log('getter', state.appList);
return state.appList;
},
},
actions: {
async fetchAppList() {
const resp = await getAppAll();
const { data } = resp;
const result = data as Array<IAppInfo>;
this.$patch((state) => {
state.appList = result;
});
},
},
});
export function getAppStore() {
return useAppStore(store);
}
为什么我在其它 组件中获取不到 appList 的值呢?一直是 undefind 其它 组件调用的代码:
import { getAppStore } from '@/store/modules/app';
const appStore = getAppStore();
const { appList } = appStore;
console.log('appList', appList); === undefind
const apps = ref(appList);
if (helper.len(apps.value) === 0) {
await appStore.fetchAppList();
apps.value = appStore.appList;
console.log('apps.value', appStore.appList); === undefind
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.