Saya melakukan pembaruan dari Angular 8 ke Angular 9, menjalankan aplikasi menunjukkan kesalahan kepada saya:

error NG8002: Can't bind to 'text' since it isn't a known property of 'app-custom-message'.
    1. If 'app-custom-message' is an Angular component and it has 'text' input, then verify that 
it is part of this module.

Saya tidak memiliki kesalahan itu sebelumnya.

Kodenya adalah sebagai berikut:

Halaman.komponen.ts

<app-custom-message [icon]='"icon.png"' [text]="'the message'"><app-custom-message>
<app-custom-footer></app-custom-footer>

Kesalahan hanya ditampilkan di custom-message, saya pikir itu mungkin karena CUSTOM-MESSAGE memiliki properti, jadi hapus properti dan kesalahan masih muncul, yang aneh adalah itu tidak muncul di custom-footer.

Pesan-Kustom.ts

import { Component, OnInit, Input } from '@angular/core';
@Component({
  selector: 'app-custom-message',
  templateUrl: './message.component.html',
  styleUrls: ['./message.component.scss']
})
export class MessageComponent implements OnInit {
  @Input() 'text';
  @Input() 'url' = null;
  @Input() 'icon' = null;
  closed = false;
  constructor() { }
  ngOnInit() {  }
}

Saya menggunakan lazy loading, dan komponen custom-message dan custom-footer berada di folder bersama di luar domain pageModule, strukturnya seperti:

-PageFolder
--PageComponent
--PageModule
-Shared
--CustomMessage
--CustomFooter

Aplikasi masih berfungsi dan kesalahan mengganggu saya, saya tahu bahwa solusinya adalah mengimpor CUSTOM_ELEMENTS_SCHEMA di PageModule, tetapi itu mencegah pendeteksian kesalahan di masa mendatang ketika Anda menyalahgunakan nama komponen.

1
juanjinario 10 Maret 2020, 13:39

1 menjawab

Jawaban Terbaik

Ubah @Input seperti ini:

@Input() text;
@Input() url = null;
@Input() icon = null;
1
Adrita Sharma 10 Maret 2020, 12:05