Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug Report] [vuex] unknown action type: wait/start occurred on Vue TypeScript #96

Open
runyasak opened this issue Jul 26, 2020 · 4 comments

Comments

@runyasak
Copy link

Step to reproduce

Using store.dispatch('wait/start', 'app loading', { root: true }) or wait/end on router.beforeEach in Vue TypeScript project.

However, it is working fine on Vue with CommonJS project.

Expected Behavior

It should be worked without any error or warning.

Actual Behavior

There have error for unknown action type.

[vuex] unknown action type: wait/start

Environment

  • vue: 2.6.11
  • vue-wait: 1.4.8
  • typescript: 3.8.3
@faenir
Copy link

faenir commented Oct 20, 2020

Same problem

@kenzik
Copy link

kenzik commented Feb 9, 2021

Same issue, but seems to work otherwise. Any workaround?

@bhaskar-nair2
Copy link

bhaskar-nair2 commented Apr 12, 2021

I think it is happening because when the dispatch happens, the wait store has not yet been registered, as of now I just added this line

if (this.hasModule('wait'))
    dispatch('wait/start', 'getCartItems', { root: true })

to remove the error

@mesa4
Copy link

mesa4 commented Nov 18, 2021

@bhaskar-nair2 i have another solution

@faenir @kenzik @runyasak

guys you can try to install vue-wait as a plugin

for example create file src/plugins/vue-wait.js
and configure it like u wish

import { createVueWait } from 'vue-wait';

const vueWait = createVueWait({
    useVuex: true,
    vuexModuleName: 'wait',
    registerComponent: true,
    componentName: 'v-wait',
    registerDirective: true,
    directiveName: 'wait'
});

export default vueWait;

and after that you can import and use it in main.js file

import store from './store';
import { createApp } from 'vue';
import vueWait from './plugins/vue-wait';

import App from './App.vue';

const app = createApp(App);

app.use(store);
app.use(vueWait);

app.mount('#app');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants