Магазин Vuex в сборнике рассказов не определен - PullRequest
1 голос
/ 20 сентября 2019

Мой main.js выглядит так:

import './plugins';

import store from './store';

import FileUpload from './components/FileUpload';

export default {
    install(Vue) {
        Vue.component('file-upload', FileUpload);

        Vue.prototype.fileUploadStore = store;
    }
}

Мой компонент FileUpload выглядит так:

<template>
    <div class="container">
        <form enctype="multipart/form-data">
            <h1>Upload files</h1>
            <div class="dropbox">
                <input type="file" name="file"/>
            </div>
        </form>
    </div>
</template>

<script>
    export default {
        name: 'file-upload',

        created() {
            this.newUploadRequest();
        },

        methods: {
            newUploadRequest() {
                return this.fileUploadStore.dispatch('fileupload/newUploadRequest');
            }
        }
    }
</script>

Моя история выглядит так:

import FileUpload from '../resources/js/components/FileUpload';

export default {
  title: 'Components',
  component: FileUpload,
};

export const fileUpload = () => ({
  components: { FileUpload },
  template: '<file-upload/>'
});

И я получаю эту ошибку:

TypeError: Невозможно прочитать свойство 'dispatch' undefined в VueComponent.newUploadRequest

Почему мой магазин не определен?

1 Ответ

0 голосов
/ 24 сентября 2019

Vue.prototype.fileUploadStore = store; не выполнено, потому что вы не выполнили Vue.use(main.js module).Вы можете попробовать следующий код:

Main.js

import Vue from 'vue'; // -----①
import './plugins';

import store from './store';

import FileUpload from './components/FileUpload';

Vue.component('file-upload', FileUpload); // -----②
Vue.prototype.fileUploadStore = store; // -----③
...