Estoy tratando de usar angular para enviar datos del componente principal al secundario. En mi componente principal, uso un evento onclick para enviar datos a mi componente secundario.
En mi componente secundario user-profile.ts tengo esto:
@Input('user') set user(user: any) { }Sé que el componente recibió los datos porque si i console.log (usuario) muestra los datos. Sin embargo, no ve los datos en el html. En el html de este archivo tengo esto
<h1> {{ user.name }} </h1>Pero luego aparece el error: "No se puede leer la propiedad 'nombre' de indefinido". ¿Qué lógica pongo en mi archivo .ts para arreglar esto?
Use a continuación en su perfil de usuario.ts
@Input() user: any; // or use your User typey en el archivo html de su componente secundario puede conservar su cambio. Para evitar errores no definidos, puede utilizar. En tu html.
{{user?.name}}No ha escrito la instrucción get
private _user; //Always defined the type instead using the any @Input('user') set user(value: any) { this._user = value; } get user() { return this._user; }y también verifique el identificador nulo en la propiedad del usuario, si los datos se retrasan.
//HTML <h1> {{ user?.name }} </h1>Asegúrese de haber pasado el objeto correcto y que no esté indefinido. O la mejor manera es tener su propio valor predeterminado.