【问题标题】:Unhandled Promise rejection: Cannot read property 'push' of undefined Value未处理的承诺拒绝:无法读取未定义值的属性“推送”
【发布时间】:2018-05-06 15:04:47
【问题描述】:

这是我的以下代码:

private convertFormat(src: Array<any>): void {
for (let i of src) {
  this.selectedMonths.push({
    id: i,
    itemName: i
  })
};

this.selectedMonths = JSON.parse(JSON.stringify(this.selectedMonths));
console.log(this.selectedMonths);
}

但是,当我尝试推入已声明的 Array 时,“.push()”却给了我这个错误。

未处理的承诺拒绝:无法读取未定义的属性“推送” ;区域:;任务:Promise.then;值:TypeError:无法读取 未定义的属性“推送”

【问题讨论】:

  • selectedMonths : any[] = [] 在组件类或ngOnInit this.selectedMonths = [];
  • 我看不到你的整个代码,但你可以试试这个:private convertFormat = (src: Array): void => {...} 也许它不是'this'的问题你的类的实例
  • @Z.Bagley 我在问题中提到我已将其声明为“Array”
  • @DrNio 谢谢!有效!我将其声明为 'selectedMonth: Array' 但我应该将其设为 ' selectedMonth: Array = []'
  • 或者你可以像selectedMonths = new Array&lt;{}&gt;()一样声明它。

标签: javascript angular typescript push


【解决方案1】:

selectedMonths : any[] = [] 在组件类或 ngOnInit this.selectedMonths = [];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2017-05-29
    • 2021-07-24
    • 2017-07-12
    相关资源
    最近更新 更多