我正在使用VueJs并将使用逻辑根据if语句的结果将用户带到三个组件之一。从其父组件引入此子组件的属性是userResultData。我的想法是,它中的数据传递了userResultData数组的属性,并且一旦我可以让控制台显示事物处理它们应该的方式,就会移动到更多的组件中。在userResultData内部,它还有两个阵列,员工或经理。用户可以在员工或经理或两者中拥有值。如果employees数组中只有值,则会产生一个操作。这同样适用于经理人。如果两者都有一个值,则它是最终条件,因为它具有两者。
但是,我收到了一个有趣的错误,所以显然有些不对劲。很确定它与我如何传递args有关。我对JavaScript和这个框架比较陌生,所以如果有人不介意我可以修复的简单解释,我们非常感激。 userResultArrayData是我需要在这里传递的arg,对吧?如果是这样,我将如何通过它?
这就是我所拥有的:
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');
}
}
}
}
错误: 未捕获的TypeError:无法将undefined或null转换为object 在Function.keys() 在VueComponent.evaluateTypeOfUser(app.js:38281)
答案 0 :(得分:0)
子组件不了解managers
和employees
,它只知道userResultData
。您需要在managers
函数中明确设置employees
和data
属性。
data() {
return {
userResultArrayData: null,
managerUser: null,
employeeUser: null,
employeeAndManagerUser: null,
employees: this.userResultData.employees,
managers: this.userResultData.managers,
}
},
或者只是正确引用属性
Object.keys(this.userResultData.managers)