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

Angular14升级后MatSelect报No provider错误排查

报错原因

你的自定义mat-select-search组件中MatSelect的导入路径错误,直接导致依赖注入失败:

  • 你当前代码从@angular/material-experimental/mdc-select导入实验性MDC版本的MatSelect类
  • 但项目实际通过MatSelectModule(从@angular/material/select引入)使用的是稳定版MatSelect

两个类是完全独立的注入令牌,Angular依赖注入体系无法匹配到父级渲染的稳定版MatSelect实例,因此抛出No provider for MatSelect!错误。

修复方法

直接修改mat-select-search.component.ts中的导入语句即可:

  1. 删除原有错误导入:
    import { MatSelect } from '@angular/material-experimental/mdc-select';
    
  2. 替换为稳定版MatSelect的正确导入:
    import { MatSelect } from '@angular/material/select';
    
  3. 额外排查项:检查项目中所有Material组件相关导入,把所有从@angular/material-experimental路径引入的非主动使用的实验组件,全部替换为@angular/material/*对应路径下的稳定版导入,避免后续出现同类注入问题。
  4. 修改完成后重启开发服务、清除构建缓存,报错即可消失。

注:mat-select-search作为mat-select的子组件,是通过依赖注入获取父级MatSelect实例的,必须保证注入用的类令牌和父级实际使用的MatSelect类完全一致,才能正确拿到实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:51:23