【问题标题】:Next() is not being called on beforeRouteUpdate using the same component没有使用相同的组件在 beforeRouteUpdate 上调用 Next()
【发布时间】:2020-06-04 04:10:32
【问题描述】:

我使用同一个 vue-component 来显示我通过 axios 获取的数据。单击链接后,ajax 请求正在获取新数据。

但如果组件已经加载,用户点击另一个链接加载不同的数据,next()-方法不会被调用。

查看我的 codepen 以了解我的意思。应该有一个警报显示。如果您是第一次单击链接,它会这样做。如果你切换到另一个链接,它不会。

https://codepen.io/spqrinc/pen/YzXGGGL

【问题讨论】:

    标签: javascript vue.js vuejs2 vue-component vue-router


    【解决方案1】:

    来自docs

    请注意,beforeRouteEnter 是唯一支持将回调传递给 next 的守卫。对于beforeRouteUpdatebeforeRouteLeavethis 已经可用,因此不需要传递回调,因此不支持

    所以beforeRouteUpdate 中的next() 无法进行回调,因为您已经可以访问this 中的实例。您在回调中使用vm 完成的任何操作都可以在没有它的情况下使用this 完成:

    beforeRouteUpdate(to, from, next) {
      alert("Reloaded");
      // `this` works
      next();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2020-01-03
      • 1970-01-01
      相关资源
      最近更新 更多