如何在vuex的actions.js中使用router?

How to use router in actions.js of vuex?

这是来自 main.js 我配置路由器的代码

enter code here
const router = new Router({
    routes,
    mode: 'history',
    saveScrollPosition: true
});


sync(store, router);

const app = new Vue({
    router,
    store,
    render: h => h(App )
}).$mount('#app');

然后在 vuex/actions.js 中我已经操作 registerUser 我请求 API 如果响应成功我想将用户重定向到主页

enter code here

export const registerUser = ({commit, state}, userData) => {
    commit(types.REQUEST_USER_REGISTER);

    api.register(userData).then(success => {
        const response = success.data;

        localStorage.setItem('id_token', response.token);

        commit(types.USER_OBJECT, response.user)

        //TODO: find better solution, then put router instance into window var
        window.router.replace('/');

    }, failure => {

    })
}

上面的代码运行良好,因为我在 build.js 中将路由器实例设置为 window var,也许有人知道更好的解决方案而不是它

将路由器声明移动到单独的文件中并导出。然后导入主文件和您希望使用它的任何其他文件。 api 与 vue 原型上的 $router 属性 相同。