I need to know how I can make a @wire run when a condition is met, in this case it is selecting 2 values from a combobox list and displaying a combobox list. I store the values in variables to pass it to the wire, but I don't know how to execute the wire conditionally
JS
/*se usa la etiqueta wire para llamar al metodo de la clase apex. se le pasan los paramentros de la siguiente forma:
la variable de JS primero y despues entre comillas y con un dolar la variable de apex a la que se pasa el dato*/
@wire(getInstallation,{
zona: '$zoneInstallation',
ciudad: '$locationInstallation'
})
//se le asigna una nombre a este metodo condicional que extraera datos de la clase apex para pintarlos en lwc
instalationData({error, data}){
//si hay datos, se almacenan en un array usando un blucle for
if(data){
console.log('datos de instalaciones -----> ', data);
try{
for(i = 0; i<data.length; i++){
this.installations = [{label: data[i].Name, value: data[i].Name}];
}
}catch(error){
console.error('instalaciones -> catch, esto pasa -----> ', error );
}
//si no hay datos pinta un error
}else if (error){
console.error('instalaciones -> if, error ------------------> ' + error);
}
}
//metodo que retorna los valores obtenidos del wire para monstrar las instalaciones disponibles.
get filtroInstalaciones(){
return this.installations;
}
APEX
/*Extraer Instalaciones de una Zona seleccionada*/
@AuraEnabled(cacheable=true)
public static List<CC_Instalacion__c> getInstallation(String zoneInstallation, String locationInstallation){
String[] zoneSplit = zoneInstallation.split('-');
String zoneSummerOrWinter = zoneSplit[0];
String zoneNumber = zoneSplit[1];
String queryZone;
if(zoneSummerOrWinter == 'Verano'){
system.debug('zoneSummerOrWinter: ' + zoneSummerOrWinter);
queryZone = 'WHERE GO_summerZone__c = :zoneNumber ';
}else{
system.debug('zoneSummerOrWinter: ' + zoneSummerOrWinter);
queryZone = 'WHERE GO_winterZone__c = :zoneNumber ';
}
String queryLocation;
queryLocation = 'AND CC_Provincia__c = :locationInstallation ';
List<CC_Instalacion__c> listInstallation = new List<CC_Instalacion__c>();
listInstallation = Database.query( 'SELECT Name ' +
'FROM CC_Instalacion__c '+
queryZone +
queryLocation);
System.debug('listInstallation: ----------------- ' + zoneInstallation + listInstallation);
return listInstallation;
}
HTML
<lightning-combobox name="instalacion" label="Instalación" value={value}
placeholder="Selecciona una instalación'" options={filtroInstalaciones} onchange={handleKeyChange} disabled={enableInstallation}>
</lightning-combobox>