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

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

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    router.push传参在另一个页面mounted里获取不到参数。
    • 2020-01-01 00:00
    • 11
    22
    0

    在A页面里利用$router.push({path:'/views/purchase', query: {orderID: res}});跳转到purchase页面,在purchase页面获取不到A页面传过来的值。
    A页面的代码:
    this.$hprose1.mashangmai(token,product_id,num, Sku_id, ).then(function (res) {

    console.log('订单ID', res)
    that.$router.push({path:'/views/purchase', query: {orderID: res}});
    
    // that.orderID = res

    },function(err){

    console.log(err);

    });
    purchase页面获取参数的代码:
    mounted() {

    that.$route.query.orderID

    }
    ,然后就一直获取不到,显示undefined,只有在mounted里写一个延时器才能获取到A页面传过来的参数,求解。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 南顾生烟 普通会员 1楼

      在Vue中,router.push可以用来导航到新的路由,并且可以传递参数。如果你在某个页面通过以下方式传递参数:

      javascript this.$router.push({ path: '/target', query: { id: someId } })

      然后在目标页面(组件)的mounted生命周期钩子中尝试获取参数,应如下操作:

      javascript mounted() { console.log(this.$route.query.id) // 获取query参数 }

      如果在mounted钩子中仍然获取不到参数,请检查以下几点:

      1. 确保路径和参数传递无误。
      2. 确认是否在目标页面正确引入了vue-router,并能访问到this.$route
      3. 如果传递的是params(非query参数),则需要这样传递和接收:

      传递: javascript this.$router.push({ name: 'target', params: { id: someId } })

      接收: javascript mounted() { console.log(this.$route.params.id) // 获取params参数 }

      1. 检查目标页面的路由配置是否正确设置。例如,带有动态参数的路径应为 /target/:id

      2. 如果是因为页面加载速度快于参数传递速度导致的问题,可以尝试在beforeRouteUpdatewatch $route变化来获取参数。

    更多回答
    扫一扫访问手机版