javascript - 在 VueJS 中评估数组中的数组

标签 javascript arrays if-statement vue.js

我正在使用 VueJs,并将使用逻辑根据 if 语句的结果将用户带到三个组件之一。从其父组件引入该子组件的属性是 userResultData。这个想法是,一旦我可以让控制台显示事物正在按应有的方式处理,其中的数据就会传递 userResultData 数组的属性并移至更多组件中。在 userResultData 内部,它还有两个数组:员工或经理。用户可以对员工或经理或两者都有值(value)观。如果员工数组中只有值,则会产生一个操作。这同样适用于管理者。如果两者都有值,那么它就是最终条件,因为两者都有。

但是,我遇到了一个有趣的错误,很明显有些事情不对劲。很确定这与我传递参数的方式有关。我对 JavaScript 和这个框架比较陌生,所以如果有人不介意对我可以修复的内容进行简单的解释,我将不胜感激。 userResultArrayData 是我需要在这里传递的参数,对吗?如果是这样,我该如何传递它?

这是我所拥有的:

import EmployeeAndManagerUser from '../Organization/EmployeeAndManagerComponent.vue';
import EmployeeUser from '../Organization/EmployeeComponent.vue';
import ManagerUser from '../Organization/ManagerComponent.vue';

export default {
    props: ['userResultData'],
    components: {
        ManagerUser,
        EmployeeUser,
        EmployeeAndManagerUser
    },
    data() {
        return {
            userResultArrayData: null,
            managerUser: null,
            employeeUser: null,
            employeeAndManagerUser: null
        }
    },
    methods: {
        evaluateTypeOfUser(){
            if (Object.keys(this.managers).length === 0 && Object.keys(this.employees).length !== 0) {
                console.log('result matched with employee ');
            }
            else if (Object.keys(this.managers).length !== 0 && Object.keys(this.employees).length === 0) {
                console.log('result matched with manager ');
            }
            else {
                console.log('result is both employee and manager');
            }
        }
    }
}

错误: 未捕获的类型错误:无法将未定义或 null 转换为对象 在Function.keys()处 在 VueComponent.evaluateTypeOfUser (app.js:38281)

最佳答案

子组件不知道managersemployees,它只知道userResultData。您需要在 data 函数中显式设置 managersemployees 属性。

data() {
    return {
        userResultArrayData: null,
        managerUser: null,
        employeeUser: null,
        employeeAndManagerUser: null,
        employees: this.userResultData.employees,
        managers: this.userResultData.managers,
    }
},

或者只是正确引用属性

Object.keys(this.userResultData.managers)

关于javascript - 在 VueJS 中评估数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43527144/

相关文章:

ios - 如何在 Swift 中将对象数组发送到服务器?

arrays - bash:将大括号处的文本文件拆分为数组

javascript - 如何在 Laravel Mix 中使用全局 JS 变量?

javascript - 如何获取输入的文本值?

javascript - 如何为 ajax 成功发送两个或多个单独的结果

ruby - 查找以 "j"开头并包含 "w"的 4 个字母字符串的所有排列?

mysql - 如何在 MySQL 更新查询中使用 If Then Else?

bash - 语法错误 : "(" unexpected (expecting "then")

android - 动态更改 admob 横幅大小

javascript - undefined variable 的问题