Boa tarde Pesquisei muito por esse erro, e a resposta era sempre alguem falando pra declarar a variavel como Observable<Tipo[]>, e isso da certo…
Mas no meu codigo, estou usando o dataSource com um MatTableDataSource, passando a variavel do mesmo jeito, e da esse erro, alguem pode me ajudar com essa relação entre esse erro e o MatTableDataSource?
Segue o código:
veiculo.component.ts
@Component({
selector: 'app-veiculo',
templateUrl: './veiculo.component.html',
styleUrls: ['./veiculo.component.css'],
})
export class VeiculoComponent implements OnInit {
//veiculos: Observable<Veiculos[]>;
displayedColumns = [
'placaOriginal',
'placaFria',
'modelo',
'marca',
'ano',
'acoes',
];
dataSource!: MatTableDataSource<Observable<Veiculos[]>>;
addVeiculo(): void {
const dialogRef = this.dialog.open(VeiculoDialogComponent, {
width: '500px',
});
dialogRef.afterClosed().subscribe((result) => {});
}
@ViewChild('paginator') paginator!: MatPaginator;
ngAfterViewInit() {
this.dataSource.paginator = this.paginator;
}
constructor(
private veiculoService: VeiculoService,
public dialog: MatDialog
) {
//this.veiculos = this.veiculoService.list();
this.dataSource = new MatTableDataSource(this.veiculoService.list());
}
ngOnInit(): void {
}
veiculo.service.ts
@Injectable({
providedIn: 'root',
})
export class VeiculoService {
private readonly API = 'assets/veiculos.json';
constructor(private httpClient: HttpClient) {}
list() {
return this.httpClient.get<Veiculos[]>(this.API);
}
}