我正在使用 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)
最佳答案
子组件不知道managers
和employees
,它只知道userResultData
。您需要在 data
函数中显式设置 managers
和 employees
属性。
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/