Se presenta el siguiente error:
ERRORError: "Reference.update failed: First argument contains undefined in property 'players.-LsNhqQIz1DxVJXUQFb2.leftFooted'"
Este error se presenta porque se supone que el formulario siempre es enviado en estado valido, sin embargo si no se selecciona el campo _Left Footed_
al crear un jugador nuevo (Se almacena sin la propiedad _leftFooted_
en Firebase, ya que se envía _null_
) y si dicho registro es editado, el formulario es enviado con estado invalido y el campo _leftFooted = undefined_
.
if (playerForm.valid) {
playerFormValue.leftFooted = playerFormValue.leftFooted === '' ? false : playerFormValue.leftFooted;
}
Dicho inconveniente se soluciono:
onSubmit(playerForm: NgForm) {
const playerFormValue = { ...playerForm.value };
if (playerForm.valid) {
playerFormValue.leftFooted = (playerFormValue.leftFooted === '' || playerFormValue.leftFooted === undefined) ? false : playerFormValue.leftFooted;
} else {
if(playerFormValue.leftFooted === null || playerFormValue.leftFooted === undefined) {
playerFormValue.leftFooted = false;
}
}
if (this.player) {
this.editPlayer(playerFormValue);
} else {
this.newPlayer(playerFormValue);
}
window.location.replace('#');
}
El error no es visible en el ejemplo del vídeo porque el campo _Left Footed_
siempre estuvo seleccionado.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.