You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue Router使用router.push传参时出现undefined问题求助

解决Vue Router参数传递无效的问题

问题原因

出现Discarded invalid param(s) "value"警告,是因为路由的path中未定义对应参数的占位符,Vue Router会将未在path中声明的params判定为无效参数并丢弃。另外组件模板里用this.value是多余的,模板内可直接访问props属性。

修复步骤

1. 修正路由配置

在路由的path中添加参数占位符:value,同时将props设为true,让Vue Router自动把路由params映射为组件的props:

const routes = [
    { 
        path: '/upload/:value', // 添加参数占位符:value
        name: 'upload-document', 
        props: true, // 自动将路由params转为组件props
        component: () => import('./../modules/doc_templates/pages/UploadDocPage.vue')
    }
]

2. 调整接收组件的模板

模板内无需使用this.,直接访问props即可:

<template>
    <div> 
        <p>value: {{ value }} </p>
    </div>
</template>

<script>
export default {
    props: {
        value: String
    }
}
</script>

可选:不暴露参数在URL中的方案

如果不想让参数显示在URL里,可改用query传递参数,无需修改路由path:

  • 发起跳转的代码修改为:
this.$router.push({name: 'upload-document', query: {value: "example@email.com"}})
  • 接收组件通过$route.query获取参数:
<template>
    <div> 
        <p>value: {{ $route.query.value }} </p>
    </div>
</template>

内容的提问来源于stack exchange,提问作者Daniel Nochess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:13:22