做了个web-app项目,用的VUE-cli;
闲话不多说。直接上问题。
页面跳转,用了$route.params传参。传了数字0
再下一个页面取出来用,直接取出是数字0, 就写了if($route.params.xx),因为是数字0,所以结果是false,没问题。
可是当跳转到下一个页面,再返回的时候,出问题了。页面显示都不对了。肯定是哪里出错了,看了页面写的逻辑没问题呀。
真是纠结
查到之前的写的 if($route.params.xx) 这里,
发现结果变成了true,我直接傻了。咋还带变的,后来发现$route.params.xx 的类型不是number了,而变成了string, 这就通了
if(0) 结果是false; if('0')结果是true。
但为啥 number变string了????
我猜想可能是,第一次进页面,$route.params.xx 没经过存储取出,一些出来,只是传过来用,所以类型没变。
第二次浏览器返回的时候,$route.params.xx是从存储中取出,而存取机制导致的类型转换问题。
不知我猜想可对,希望知道的人可以解释下


小爬虾
55 声望6 粉丝