Uso de formularios reactivos en la aplicación Ionic que muestra un error en la compilación de producción.
67: Esta condición siempre devolverá 'falso' ya que los tipos 'cadena' y 'número' no se superponen.
[disabled]="(schedule == 2 && getAboutControl.schedule_time.errors?.required || getAboutControl.schedule_date.errors?.required)"
mi formulario de inicio:
initAboutForm() { this.aboutForm = this.formBuilder.group({ is_schedule: ['1'], // will depend on this to make date and time required. schedule_date: [''], schedule_time: [''], // other values }) }
mi html:
<ion-item> <ion-label>Date:</ion-label> <ion-datetime displayFormat="DD MMM, YYYY" min="2021" max="2030" formControlName="schedule_date"> </ion-datetime> </ion-item> <div class="text-danger"> <div *ngIf="getAboutControl.schedule_date.touched && getAboutControl.schedule_date.errors?.required"> Date is required * </div> </div> <ion-item> <ion-label>Time:</ion-label> <ion-datetime displayFormat="HH:mm" formControlName="schedule_time"></ion-datetime> </ion-item> <div class="text-danger"> <div *ngIf="getAboutControl.schedule_time.touched && getAboutControl.schedule_time.errors?.required"> Time is required * </div> </div>
Como se menciona en los comentarios, en la plantilla está comparando la schedule
(cadena) con 2
(número).
Entonces, la solución sería comparar el schedule
con '2'
en su lugar:
[disabled]="(schedule === '2' && getAboutControl.schedule_time.errors?.required || getAboutControl.schedule_date.errors?.required)"