当请求后台数据,返回的id是一串很长很大的数字时,此时转为JSON对象会有问题(超出了js数字最大安全值)
最大安全值:2的53次方 Number.MAX_SAFE_INTEGER
出现超出最大安全值的2个条件
1、转json对象
1)转为json对象(谷歌浏览器preview中会转为json对象)
2)axios请求的结果会默认转为json对象
2、进行运算时
长串的id数字+(任意数字)
3674856907067845+3 //结果和预期不一致(有误差)
解决方案:
使用json-bigint
第三方包转为JSON对象
形式(此对象会将长id拆分)
把通过axios请求默认转为json对象的修改配置,转为json-bigint方式
步骤
1、下载 npm i json-bigint | yarn add json-bigint
2、导入(哪里需要导入哪里的文件)
import JSONBIGINT from 'json-bigint'
transformResponse:在拦截器之前转换响应数据(拦截器在.then .catch之前执行)
axios.defaults.transformResponse = [(data) => {
// 使用 json-bigint 进行转换
return JSONBIGINT.parse(data);
}]
4、查看长串id是否配置成功
通过console.log(id.toString())输出id结果查看是否成功
由于是拆分的id,所以需要通过toString() 转为字符串形式查看