首页 > 解决方案 > axios 然后在 vue 中将对象推送到数组

问题描述

为什么当我将对象插入数组时,它们在第一种方法中被插入并覆盖

但在第二个什么都没有发生?

    el:"#usersList",
        data () {
            return {
            users: []
            }
        },

这有效

.then(response => (this.users = response.data))

为什么这不起作用?

    .then(
                function (response) {
                var arr = response.data;
                const rename = null;
                arr.forEach( function(data) {
                    switch(data["prava"]) {
                        case "1":
                          data["prava"] = "User 0";
                          break;
                        case "2":
                            data["prava"] = "User 1";
                          break;
                        case "3":
                            data["prava"] = "Mod";
                            break;
                        case "4":
                            data["prava"] = "Admin";
                            break;
                        case "5":
                            data["prava"] = "Owner";
                            break;
                        default:
                            data["prava"] = "User 1";
                      }
                  });
                this.users = arr;
            })

标签: vue.jsaxiospush

解决方案


组件实例this在回调中不可用,then但如果您使用箭头函数,它可以使用:

.then((response)=>{
            var arr = response.data;
            const rename = null
            ...
           this.users = arr;
})

推荐阅读