【发布时间】:2020-04-06 10:54:35
【问题描述】:
我已将 Vuex-Persist 和 Vuex-ORM 添加到我的 Nuxt 项目中。当应用程序第一次启动时,我想添加一些样板数据。
在我的default.vue 布局中,我添加了一个创建函数来添加这个虚拟数据。
<script>
import Project from '../models/Project';
export default {
created () {
// I'm Using Vuex-Orm to check if there are any projects stored
if (Project.query().count() === 0) {
Project.insert({ data: [{ title: 'My first project' }] })
}
}
}
</script>
当应用程序重新加载并第二次打开时,我希望Project.query().count()
返回 1。但它总是返回 0,因为 vuex-persist 还没有完成恢复本地数据。
根据the docs ,这将是解决方案
import { store } from '@/store' // ...or wherever your `vuex` store is defined
const waitForStorageToBeReady = async (to, from, next) => {
await store.restored
next()
}
store.defined 未定义,this.$store 也是如此。
该评论突出了我的确切问题“我的 vuex 商店在哪里定义?”
【问题讨论】: