select中默认初始值value显示名称,页面刷新显示Id的问题 (this.$route.query刷新后类型改变)

 
获取this.$route.query传递的参数,通常为number,但是在页面刷新后会转变为string,
这样基于此的判断条件就不生效了。
解决方法:
通过parseInt
手动转变数据类型就ok了。
 
 
补充:

vue-router传参,不管是params形式还是query形式传参,在页面刷新后,params和query对象中的属性所对应的属性值都会被浏览器自身强制转换为string类型(这一点与浏览器的sessionStorage和localStorage存储对象,对象会被转为string类型,不谋而合),破环原先属性值的数据类型。

下面为6种数据类型属性值的解决方法:

 
1.number数据类型:页面刷新后,其类型会转换为`string`类型。那么我们在路由刷新页面,对传递过来的属性值做一次`Number()`转换,就是不管页面有没有刷新都做一次`Number()`转换;

2.string数据类型:页面刷新后,其类型依然为`string`类型,无需任何操作;

3.boolean数据类型:页面刷新后,其类型会转换为`string`类型。那么我们在路由刷新页面,对传递过来的属性值做一次`Boolean()`转换,就是不管页面有没有刷新都做一次`Boolean()`转换;

4.undefined数据类型:页面刷新后,其类型依然为`undefined`类型,无需任何操作;

5.null数据类型:页面刷新后,其类型依然为`null`类型,无需任何操作;

6.object数据类型:页面刷新后,其类型会转换为`string`类型。那么我们在路由跳转传参页面对属性值做一次`JSON.stringify()`预处理,然后在路由刷新页面对该值进行`JSON.parse()`转换即可;

  

posted @ 2021-07-22 09:33  小十六哇  阅读(526)  评论(0编辑  收藏  举报