【问题标题】:TypeError: Cannot read property 'details' of undefined inside foreach in Vue.jsTypeError:无法读取 Vue.js 中 foreach 内未定义的属性“详细信息”
【发布时间】:2021-02-17 03:51:42
【问题描述】:

我正在尝试在 foreach 循环中使用此运算符设置值

 $.each(this.form.details,(key,value)=>{

   $.each(this.form.details,(key1,value1)=>{
   this.form.details[key].total=76776;
   });
   });

 form: new Form({
   details : [{
    name:'',

  ])
  });

但收到此错误:

TypeError: 无法读取未定义的属性“详细信息”

请提出解决此问题的任何解决方案。

【问题讨论】:

  • 应该是$.each(data.details,(key,value)=>{...
  • 您的form 是在data(){} 选项中定义的?
  • @BoussadjraBrahim:是的,表单在数据内部
  • 请分享包含该循环的代码

标签: jquery vue.js vuejs2


【解决方案1】:

您的内部循环不是必需的,错误来自那里,您的内部循环使用运算符 this 引用第一个循环的上下文,该上下文不包含其中声明的任何形式。
所以你必须做到以下几点

$.each(this.form.details,(key,value)=>{
    this.form.details[key].total=76776;
});

 form: new Form({
   details : [{
    name:'',

  ])
  });

或者如果您需要第二个循环,请尝试以下操作

var self = this;
 $.each(this.form.details,(key,value)=>{

   $.each(self.form.details,(key1,value1)=>{
   this.form.details[key].total=76776;
   });
   });

 form: new Form({
   details : [{
    name:'',

  ])
  });

【讨论】:

    猜你喜欢
    • 2017-12-26
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多