做的项目排查一个bug,前端通过json传一个id给后端,发现这个id有时是整数,有时是字符串,后端订的接口是整数,
开始排查,情况是前端代码一行没变,结果这个id有时是整数,有时是字符串,
后面发现代码是通过query传参,vue框架的query传参不会改变传入参数的类型,
但是因为通过页面的query传参, 当用户手动点刷新后, query的参数就会被置为字符串类型,
解决方法: 从query获取的参数先进行字符串转换或解析成想要的类型后再使用

js可以设置数据劫持,vue可能是设置了数据劫持(Object.defineProperty(), setter) 或者在页面刷新后vue重新构建了router下的这个query对象(从url获取到query参数,但是又没办法判断是什么类型,所以只能统一为string), 所以在取router的query时,取到的数据类型就变成string

Logo

前往低代码交流专区

更多推荐