无法在vue中推送数据

nom7f22z  于 2023-03-19  发布在  Vue.js
关注(0)|答案(1)|浏览(165)

我正在尝试推送一个如下所示的数组

"role 1" => [
    "role" => "role 1",
    "hours" => "4"
];

在vue,但我得到这个错误
未捕获(承诺中)TypeError:无法读取未定义的属性(阅读“push”)
这是我代码

<script>
export default {
    data(){
        return {
            roleName: null,
            roleHours: null,
            resources: {},
        }
    },
    methods: {
        newRole(){
            axios.put(`/role/create`, {
                role: this.roleName,
                hours: this.roleHours
            }).then(response => {
                    Object.values(response.data).forEach(data => {
                        this.resources[data.role].push(data);
                    });
                }
            })
        },
    },
    mounted(){

    }
}
</script>

我不知道我的代码哪里出错了。

qij5mzcb

qij5mzcb1#

问题是this.resources[data.role]未定义为数组,请尝试检查它是否存在,然后推送,否则分配一个空数组,然后推送:

Object.values(response.data).forEach(data => {
     if(!this.resources[data.role]){
       this.resources[data.role] = [];
     }  
     
    this.resources[data.role].push(data);
});

相关问题