My main.js looks like this:
import './plugins';
import store from './store';
import FileUpload from './components/FileUpload';
export default {
install(Vue) {
Vue.component('file-upload', FileUpload);
Vue.prototype.fileUploadStore = store;
}
}
My FileUpload component looks like this:
<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>
My story looks like this:
import FileUpload from '../resources/js/components/FileUpload';
export default {
title: 'Components',
component: FileUpload,
};
export const fileUpload = () => ({
components: { FileUpload },
template: '<file-upload/>'
});
And I get this error:
TypeError: Cannot read property 'dispatch' of undefined at VueComponent.newUploadRequest
Why is my store undefined?