我有一个奇怪的 js/vuejs 问题,当变量在函数内更新时(从 data(){} 获取数据),它会上升,数据也会更新它。
这是一个代码示例。它检查用户是否没有个人资料图像,它会通过 axios 将图像名称发送到 api,如果用户已经有图像,则会将当前图像追加到列表中并将其发送到 api:
addImage (file) {
var URL = 'http://foo.com/api';
var images = this.person.images;
let att = []
if(images.length) {
att = images
att.push(file.name)
}else{
att.push(file.name)
}
axios.post(URL, {
attachements: att
}).then(
// update dom
).catch(err => {})
},
这里的问题是 this.person.images
会更新,即使我只想用它来获取当前的图像列表。
如果在执行 att.push(file.name)
时检查 if/else block ,this.person.images;
也会更新。我仅使用 att
来存储当前图像列表并将其发送到 api。
是否可以使用 this.person.image
仅获取信息?
我可以使用const att = this.person.image
,但之后我将无法更新att
。
最佳答案
更简单的解决方案是
var images=JSON.parse(JSON.stringify(this.person.images))
避免循环。
关于javascript - 如何阻止vuejs方法变量更新数据变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561413/