【问题标题】:NullInjectorError: No provider for MatSelectionListNullInjectorError:没有 MatSelectionList 的提供者
【发布时间】:2021-01-20 19:04:05
【问题描述】:

整个错误是这样的: NullInjectorError: R3InjectorError(AppModule)[MatSelectionList -> MatSelectionList -> MatSelectionList]: NullInjectorError: MatSelectionList 没有提供者!

我真的不明白发生了什么,我在另一个组件中有这个元素并且它没有问题,我肯定会导入它,这是我的模块:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SidenavComponent } from './sidenav.component';
import { MatToolbarModule } from '@angular/material/toolbar';
import { SidenavItemModule } from './sidenav-item/sidenav-item.module';
import { ScrollbarModule } from '../../components/scrollbar/scrollbar.module';
import { FlexLayoutModule } from '@angular/flex-layout';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { IconModule } from '@visurel/iconify-angular';
import {MatListModule} from '@angular/material/list';
import {MatDividerModule} from '@angular/material/divider';
import { AlertModule } from 'ngx-alerts';
import { MatTooltipModule } from '@angular/material/tooltip';
import {MatGridListModule} from '@angular/material/grid-list';
import { MatSelectModule } from '@angular/material/select';


@NgModule({
  declarations: [SidenavComponent],
  imports: [
    AlertModule.forRoot({maxMessages: 4, timeout: 3000, position: 'right'}),
    CommonModule,
    MatToolbarModule,
    SidenavItemModule,
    ScrollbarModule,
    FlexLayoutModule,
    MatButtonModule,
    MatIconModule,
    IconModule,
    MatDividerModule,
    MatTooltipModule,
    MatGridListModule,
    MatSelectModule,
    MatListModule
  ],
  exports: [SidenavComponent]
})
export class SidenavModule {
}

编辑:

我是个笨蛋,问题不在模块上,实际上是在 HTML 上,我没有使用其中的 mat-selection-list 部分,只是列出了 mat-list-option。

 <mat-selection-list #shoes [multiple]="false">
  <mat-list-option *ngFor="let shoe of typesOfShoes" [value]="shoe">
    {{shoe}}
  </mat-list-option>
</mat-selection-list>

【问题讨论】:

    标签: javascript angular components


    【解决方案1】:

    错误清楚地表明 angular 正在寻找 MatSelectionList 但找不到它。安装 Augury(chrome 插件)并检查组件层次结构,您会发现缺少 MatSelectionList 的模块。如果您不想安装 Augury,请检查项目结构并查看组件之间是否有任何父子关系。 试试看,我相信你会很快解决这个错误。

    【讨论】:

      猜你喜欢
      • 2019-11-16
      • 2019-06-25
      • 2018-09-19
      • 2018-05-02
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多