Vue.js 中解决 submitDetail 函数报错:Cannot read properties of null (reading 'gregorianCalendarDays')
在 Vue.js 项目中,submitDetail 函数中经常会遇到 Cannot read properties of null (reading 'gregorianCalendarDays') 错误,这通常是因为 acTaxPiIncomeReportingDetail 为 null,导致无法读取其属性。
为了解决这个问题,你需要在 submitDetail 函数中先判断 this.form.acTaxPiIncomeReportingDetail 是否为 null,如果是 null 则需要先初始化为一个空对象,然后再进行赋值操作。
submitDetail() {
console.log(this.form.acTaxPiIncomeReportingDetail, 'ddddd');
if (this.form.acTaxPiIncomeReportingDetail === null) {
this.form.acTaxPiIncomeReportingDetail = {};
}
this.isViewMode = false;
const formitems = [
'gregorianCalendarDays',
'domesticWorkDays',
'abroadWorkDays',
'totalRevenue',
'domesticPayment',
'abroadPayment',
];
const formdata = this.form;
console.log(formdata, 'fffffff')
formitems.forEach((item) => {
this.form.acTaxPiIncomeReportingDetail[item] = formdata.acTaxPiIncomeReportingDetail[item];
});
const income = this.calculateIncome();
this.form.equityIncentiveIncome = income;
this.dialogVisible = false;
},
通过以上代码修改,即使 acTaxPiIncomeReportingDetail 为 null,也会先初始化为一个空对象,然后再进行赋值操作,从而避免报错。
同时,你也需要确保在 submitForm 函数中,this.form.acTaxPiIncomeReportingDetail 已经成功赋值。如果在 submitForm 函数中 acTaxPiIncomeReportingDetail 仍然为 null,则说明在 submitDetail 函数中赋值操作存在问题。
建议你检查以下内容:
- 确保
formdata.acTaxPiIncomeReportingDetail中包含你需要的值。 - 检查
formitems数组中的属性名称是否正确。 - 检查
submitDetail函数的执行流程,确保其在submitForm函数之前被调用。
通过以上方法,你就可以有效地解决 Cannot read properties of null (reading 'gregorianCalendarDays') 错误,并确保 submitForm 函数能够正确获取 acTaxPiIncomeReportingDetail 的值。
原文地址: https://www.cveoy.top/t/topic/pdtT 著作权归作者所有。请勿转载和采集!