今天搞Vue 遇到一个比较怪异的问题,看代码
let self=this
for (let i = 0; i < data.length; i++) {
let item = data[i]
item['id'] = i + 1// 赋值序号
item['similarity'] = parseFloat(item['similarity']).toFixed(2)
// }
this.resembleData = data
// 分次请求轨迹数据
let targetIdParam = item['targetId']
self.queryTrajParams['targetId'] = targetIdParam
self.queryTrajParams['sourceId'] = null
console.log('targetId参数', targetIdParam)
console.log('queryTrajParams', self.queryTrajParams)
axios.get(serviceUrl.trajectoryDataUrl, {
params: self.queryTrajParams
}).then(res => {
....省略
发现network请求的url参数同一个,而且都是最后一个,看来是参数被覆盖了,我是Java出身,碰到这种问题一脸懵逼
是一枚前端小菜鸡,不过我隐约发现是参数的类型原因,然后我试了下基本数据类型,只传number类型,果然能传成功
看来就是对self.queryTrajParams进行一下转换
let queryParam = JSON.parse(JSON.stringify(self.queryTrajParams))
使用let 对参数进行重定义,let会生成一份临时傀儡代码块,每次都会生成!!
axios.get(serviceUrl.trajectoryDataUrl, {
params: queryParam
}).then(res => {
然后ok!!完美解决问题!!mark下