Entonces tengo el componente favorito para la funcionalidad "agregar a favoritos".
Tengo el siguiente código en favorite.component.ts (solo líneas para emitir eventos)
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; @Input() isFavorite = false; this.change.emit({ newValue: this.isFavorite });Tengo el siguiente código en app.component.html:
<favorite [isFavorite]="post.isFavorite" (change)="favButtonChanged($event)"></favorite>Y el siguiente en app.component.ts:
favButtonChanged(eventArgs: { newValue: boolean }) { console.log("Favorite changed", + eventArgs); }La idea es que cada vez que el botón cambie (cambia de color y html), este evento para iniciar sesión en la consola "Favorito cambiado" + 0/1 (un valor booleano). Registro: Favorito cambiado NaN.
¿Dónde está el problema?
console.log("Favorite changed", + eventArgs);
Hay una coma , por lo que está pasando dos parámetros a console.log y el segundo parámetro es + eventArgs que intenta convertir eventArgs en un número.
Como declaró, eventArgs claramente no es un número ( NaN significa No es un número), por lo que la conversión (del signo + ) falla.
Es posible que desee eliminar ese + .
aquí eventArgs es un objeto que obtendrá NaN debido a que + necesita escribir eventArgs.newValue que es un valor booleano y se convierte en 1/0. Pruebe el siguiente código
console.log("Favorite changed ", +eventArgs.newValue)