路由传参问题

来源:10-4 修改文章编码 第三部分 - 完成编辑功能

weixin_慕莱坞6472890

2021-07-08

图片描述
路由跳转到单个文章详情页时,使用params传参会报错:Type ‘null’ is not assignable to type ‘string | number | (string | number)[]’.
但是使用下面的/posts/${id} 不报错,为什么呢?

写回答

2回答

张轩

2021-07-09

同学你好 如果你去看 id 的类型,会发现他有可能是 undenfied,也就是说你的这个参数是有可能没有的(这也非常合乎逻辑),所以这里可以使用if 先判断 id 存在,或者像你那样人为的使用类型断言,都可以解决,下面的方法,加入你使用直接一个 URL 字符串的方法,他并没有这个限制,只要是字符串就可以了

0
1
weixin_慕莱坞6472890
老师,放上去会提示id类型是 'string | (string | null)[] | null' 就有可能是null 或者null的数组,,这种的判断怎么写?
2021-07-12
共1条回复

farmer_code

2021-07-08

params 改 query 试试,没有对应的路由参数,应是查询参数

0
2
weixin_慕莱坞6472890
const id = route.query.id as string router.push({ name:'posts', params:{id:id} }) 使用类型断言,可以了,通过路由获取的参数类型可能有问题
2021-07-09
共2条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程