在 Vue.js 项目中,submitDetail 函数中经常会遇到 Cannot read properties of null (reading 'gregorianCalendarDays') 错误,这通常是因为 acTaxPiIncomeReportingDetailnull,导致无法读取其属性。

为了解决这个问题,你需要在 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;
},

通过以上代码修改,即使 acTaxPiIncomeReportingDetailnull,也会先初始化为一个空对象,然后再进行赋值操作,从而避免报错。

同时,你也需要确保在 submitForm 函数中,this.form.acTaxPiIncomeReportingDetail 已经成功赋值。如果在 submitForm 函数中 acTaxPiIncomeReportingDetail 仍然为 null,则说明在 submitDetail 函数中赋值操作存在问题。

建议你检查以下内容:

  1. 确保 formdata.acTaxPiIncomeReportingDetail 中包含你需要的值。
  2. 检查 formitems 数组中的属性名称是否正确。
  3. 检查 submitDetail 函数的执行流程,确保其在 submitForm 函数之前被调用。

通过以上方法,你就可以有效地解决 Cannot read properties of null (reading 'gregorianCalendarDays') 错误,并确保 submitForm 函数能够正确获取 acTaxPiIncomeReportingDetail 的值。

Vue.js 中解决 submitDetail 函数报错:Cannot read properties of null (reading 'gregorianCalendarDays')

原文地址: https://www.cveoy.top/t/topic/pdtT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录