首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Nuxt布局中使用Vuex商店

无法在Nuxt布局中使用Vuex商店
EN

Stack Overflow用户
提问于 2020-12-07 16:32:51
回答 1查看 325关注 0票数 0

我正试图在我的layout中使用Vuex,但是我想不出如何使它工作。以下是我正在做的事情:

store/sources.ts

代码语言:javascript
复制
import { VuexModule, Module, Mutation, Action } from 'vuex-module-decorators'
import { store } from '@/store'
import axios from 'axios'

const { sourcesEndpoint } = process.env

interface Source {
  id: String
}

@Module({
  name: 'sources',
  namespaced: true,
  stateFactory: true,
  dynamic: true,
  store,
})
export default class Sources extends VuexModule {
  private _sources: Source[] = []

  get sources(): Source[] {
    return this._sources
  }

  @Mutation
  updateSources(sources: Source[]) {
    this._sources = sources
  }

  @Action({ commit: 'updateSources' })
  async fetchSources() {
    // eslint-disable-next-line no-console
    console.log(`!!! ${sourcesEndpoint} !!!`)
    return sourcesEndpoint ? await axios.get(sourcesEndpoint) : []
  }
}

store/index.ts

代码语言:javascript
复制
import { Store } from 'vuex'

export const store = new Store({})

layouts/default.vue

代码语言:javascript
复制
<script>
import { getModule } from 'vuex-module-decorators'
import Sources from '@/store/sources'

export default {
  fetch() {
    const sourcesModule = getModule(Sources, this.$store)
    sourcesModule.fetchSources()
  },

  fetchOnServer: false,
}
</script>

我所犯的错误是:

代码语言:javascript
复制
[vuex] must call Vue.use(Vuex) before creating a store instance.
EN

回答 1

Stack Overflow用户

发布于 2020-12-07 16:46:44

您需要添加Vue.use(Vuex),而且在主存储区中不包括您的模块

代码语言:javascript
复制
import { Store } from 'vuex'
import { Sources } from './sources'

Vue.use(Vuex)
export const store = new Store({
modules: {
    Sources 
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65185622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档