【发布时间】:2020-05-30 06:16:45
【问题描述】:
我将 Nuxt 与 Vue 路由器和 Axios 一起使用。我看到 Vue Router 有一个很棒的功能,叫做Navigation Guards。
不幸的是,在下面的示例中,我的beforeRouteEnter() 函数被调用,但似乎在fetchPageData(next) 中调用我的手动next() 方法之前退出并切换页面。
这里的正确模式是什么?
export default {
beforeRouteEnter (to, from, next) {
next(vm => {
vm.fetchPageData(next);
});
},
methods: {
async fetchPageData(next) {
const result = await this.$axios.$get('/api/v2/inventory/3906?apiKey=f54761e0-673e-4baf-86c1-0b85a6c8c118');
this.$store.commit('property/setProperty', result[0]);
next();
}
}
}
我假设我对next(vm => {}) 的第一次调用是异步运行的,允许继续执行,导致在我(很可能是错误地)尝试回调 next() 之前发生页面更改。
【问题讨论】:
标签: javascript vue.js vue-router nuxt.js