Vue.js 3 和 Pinia 存储由 API 异步填充

Vue.js 3 and Pinia store filled in async by API

提问人:Deal With It 提问时间:11/7/2023 最后编辑:Deal With It 更新时间:11/7/2023 访问量:78

问:

我正在Vue.js 3 + Pinia中创建一个应用程序。我创建了一个操作,该操作调用 - async function with await on axios call - 一个 API 来填充页面的整个存储,但不起作用。

有什么方法可以等待商店的完整更新吗?目前的问题是 getter 在加载页面时不返回任何内容。我也在遵循解构 getter 的官方文档,并在“onBeforeMount”中以“wrapped”启动操作调用。

有关什么是工作流程的更多详细信息

在主页中,我调用 API 在存储中获取所有数据(也是 Vue-Components 的数据),该函数用“onBeforeMount”包装。与 Vue-Component 无关的数据将打印到主页上。

在组件中,我调用存储 (useStore()) 并使用“storeToRefs”来解构 getter,结果是未定义的。

可能的解决方案:出现此问题是因为我想避免在 Vue-Components 中使用 props,因为我有时也会嵌套组件。

vue.js vuejs3 vue-composition-api pinia vue-sfc

评论

0赞 Estus Flask 11/7/2023
这正好解决了这个问题,stackoverflow.com/a/77427964/3731501。在安装应用程序之前,您需要等待初始化完成。你可以在 vue 3 中用悬念来做到这一点
0赞 Deal With It 11/7/2023
我必须申请<悬念>吗?</Suspense>到页面的整个模板,而它是否正在加载?对于使用商店的每个组件?
0赞 Estus Flask 11/7/2023
不,没有必要有多个<悬念>,但它应该更高一级,例如在页面异步设置中等待store.init(),并在根补偿中<悬念>

答: 暂无答案