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

Vue-router使用router-link跳转时报Missing required param "id"错误求解

问题原因解释
  • 你的post数据是异步获取的(通常是从Laravel后端接口请求文章详情),组件首次渲染的时候,异步请求还没返回结果,post对象还没有被正确赋值,此时post.category_id的值是undefined。
  • 你在路由规则里定义的categories.show路由明确要求携带必填的id参数,vue-router在渲染<router-link>的时候会校验参数是否完整,发现id为undefined不符合要求,就会抛出「Missing required param "id"」的错误。
  • 你添加v-if判断之后,只有当post.category_id确实存在的时候,才会渲染<router-link>组件,此时构造路由参数的id是有有效值的,自然就不会触发参数校验错误,功能也能正常运行。

补充优化建议:如果不想用v-if,也可以在初始化post数据的时候给它设置默认结构,比如const post = ref({ category_id: 0, category_name: '' }),或者给路由参数加兜底值params: { id: post.category_id ?? 0 },不过更推荐你当前的v-if写法,没有分类id的时候这个跳转链接本身也没有展示的必要。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:04