You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Promise中出现Cannot read properties of undefined(reading 'remove')错误求助

问题分析与解决

错误原因

报错ERROR Error: Uncaught (in promise): TypeError: Cannot read properties of undefined (reading 'remove')的核心是:调用removeClass时,this.renderer为undefined,导致无法读取它关联的remove相关方法。

常见遗漏点及修复方案

  • Promise回调中this指向丢失
    在Promise的then/catch回调里,普通函数会改变this指向,使其不再指向组件实例,进而找不到this.renderer。
    修复方式二选一:

    1. 使用箭头函数(自动绑定当前组件的this):
      somePromise().then(() => {
        const rootElem = view.rootNodes[0]; 
        if (rootElem) { 
          this.renderer.removeClass(rootElem, 'disabled'); 
        }
      })
      
    2. 提前保存当前this的引用:
      const self = this;
      somePromise().then(function() {
        const rootElem = view.rootNodes[0]; 
        if (rootElem) { 
          self.renderer.removeClass(rootElem, 'disabled'); 
        }
      })
      
  • Renderer未正确注入(针对Angular场景)
    如果是Angular项目,Renderer2必须通过组件构造函数注入,否则this.renderer会是undefined。检查构造函数是否包含如下代码:

    constructor(private renderer: Renderer2) {}
    
  • 额外防御性判断
    可以给this.renderer也加一层判断,避免意外报错:

    const rootElem = view.rootNodes[0]; 
    if (rootElem && this.renderer) { 
      this.renderer.removeClass(rootElem, 'disabled'); 
    }
    

内容的提问来源于stack exchange,提问作者Govardhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:09:45