beforeRouteEnter 中的回调函数没有被触发

Callback function in beforeRouteEnter is not triggered

我有简单的路线:/follower/:token/edit 和 /follower/new

当我通过 $router.push('/follower/new') 从第一个移动到第二个时,触发了 befourRouteEnter 挂钩,但 'next' 函数中的回调函数没有(问题当我从不同的路线或重新加载页面时不存在)。

beforeRouteEnter(to, from, next) {
    debugger; //is triggered
    next(vm => {
        debugger; //is not triggered
    })
}

你知道什么是错误的吗?

Vue:2.5.17 Vue 路由器:3.0.1

此致

如果您使用相同的组件在路由之间导航 - vue 会尝试通过提供现金版本进行优化。我不确定这是否是您遇到的情况 - 但您可以尝试通过向 <router-view>.

添加一个键值来强制重新实例化

一个 'common' 方法是使用 $route.path

<router-view :key="$route.path"></router-view>