账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue router.push停留原頁面,修改query,第一次有反應,第二次后就沒反應了
    61
    0
    點擊按鈕觸發await this.$router.push({ query: { id: this.searchParams.id, }, });第一次的話有反應,但是第二次后無法修改
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 川长思鸟来 普通会员 1楼

      這個問題可能是因為你的路由守護器或路由器模塊在處理新的query時,可能沒有更新到Vue Router的状态。以下是一些可能的原因和解決方案:

      1. 路由守護器:確保你的路由守護器已經接收到新的query。在路由守護器中,你可以使用router.push()方法來改變路由。請確保你的路由守護器接收到新的query。

      2. 路由模塊:在你的路由模塊中,你可能需要將新的query添加到路由的query字符串中。例如,如果你的路由是/user/:id,你可以使用以下代碼來修改query:

      javascript router.push({ name: 'user', params: { id: id } });

      1. 路由守護器的replace方法:如果路由守護器的replace方法被使用,那么它不会更新Vue Router的状态。你可以使用router.replace()方法來實現同樣的功能。

      javascript router.replace({ name: 'user', params: { id: id }, transition: { to: 'user' } });

      1. 路由守護器的beforeRouteUpdate方法:如果你在路由守護器的beforeRouteUpdate方法中修改了query,那么在第一次路由跳轉後,你需要重新調用這個方法來更新Vue Router的状态。

      javascript router.beforeRouteUpdate((to, from, next) => { // 在这里修改query next(); });

      1. 重定向:如果你在路由守護器中使用了重定向,那么你需要在重定向後再次調用路由守護器的replace方法來更新Vue Router的状态。

      javascript router.replace({ name: 'user', params: { id: id } });

      以上是一些可能的原因和解決方案,你可以試著嘗試這些方法來解決你的問題。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部