javascript - 如何阻止vuejs方法变量更新数据变量

标签 javascript vue.js

我有一个奇怪的 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/

相关文章:

javascript - Codeigniter 2 - 插入表会创建重复项

javascript - 如何在 ActionScript 1 中调用 JavaScript 函数?

javascript - "Foreach"循环抛出错误

Vue.js 渲染 v-bind :style background-image url with custom computed property does not work

javascript - 尝试保存 .vue 文件

javascript - 需要很长时间才能完成的事件是否会更改 "Mutable variable"的值

vue.js - 在 vuex 操作中具有多个参数的 Axios post 请求

javascript - 在 IE 11 中循环一段代码

vue.js - 传递给 Vue 中动态组件的 Prop 不是 react 性的

c# - 如何在 WebBrowser 控件中注入(inject) Javascript?