импорт магазина в пустой проект vuejs - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь написать простой плагин для моего проекта Vue.js (Nuxt).Я наткнулся на этот пост Добавление мутаций в Vuex store как часть Vue Plugin , но все еще не могу заставить его работать.

Вот моя структура приложения.

~ is root

~/plugins/HTTP/index.js
~/plugins/HTTP/_store/ => index.js, actions.js, getters.js, mutations.js
~/plugins/HTTP/_api/ => index.js

**Global Store**
~/store/index.js
~/store/modules/
~/store/modules/testing => index.js, actions.js, getters.js, mutations.js

в моем ~/plugins/HTTP/index.js, у меня есть следующий код

import Vue from 'vue';
import store from '~/store';

const HTTP = {
    install(vue, { store }){ // Now you plugin depend on store
        if(!store){
            throw new Error('Please provide vuex plugin.')
        }
        // register your own vuex module
        store.registerModule({store})
    }
}

export default HTTP;

Vue.use(HTTP)

В моем ~/store/index.js у меня есть следующий код:

import Vuex from 'vuex'
import testingModule from './modules/testing'

const state = () => {
  return new Vuex.Store({
    modules:{
      testing: testingModule
    }
  })
}

export default state

КогдаЯ пытаюсь запустить его, мне выдается следующее сообщение:

Cannot destructure property `store` of 'undefined' or 'null'.

Что я тут не так сделал?

1 Ответ

0 голосов
/ 29 сентября 2018

Вы не передаете никаких свойств, поэтому ошибка верна.Вам нужно передать объект options, когда вы передадите ему use.Может быть пустым, но для него нужен объект.

import Vue from 'vue';
import store from '~/store';

const HTTP = {
    install(vue, { store }){ // Now you plugin depend on store
        if(!store){
            throw new Error('Please provide vuex plugin.')
        }
        // register your own vuex module
        store.registerModule({store})
    }
}

export default HTTP;

Vue.use(HTTP, {}) // <---------- Empty object to avoid allow destructuring. 
...