Elenco di selezione dinamico per casella combinata fulmini

Aug 18 2020

Comunità. Ho una domanda su due campi personalizzati con il tipo Picklists e lightning-combobox.
Supponiamo che la casella combinata 1 mostri il valore dell'elenco di selezione 1 mentre la casella combinata 2 mostri il valore dell'elenco di selezione 2.

<template>
   <lightning-combobox label="Picklist 1" options={optionSet1}></lightning-combobox>
   <lightning-combobox label="Picklist 2" options={optionSet2}></lightning-combobox>
</template>

Ho utilizzato il seguente javascript per recuperare i valori dell'elenco di selezione.

@track optionSet1

@wire(getObjectInfo, { objectApiName: CUSTOM_OBJECT })
objectInfo;

@wire(getPicklistValues, { recordTypeId: '$objectInfo.data.defaultRecordTypeId', fieldApiName: FIELD_1 })
getPicklistValues({error, data}) {
   if (data) {
      this.optionSet1 = data.values.map(plValue => {
         return {
            label: plValue.label,
            value: plValue.value
         }
   });
}

Aggiornamenti dal 19 agosto: grazie per il consiglio di @arut. CongetPicklistValuesByRecordType, posso recuperare tutti i valori dell'elenco di selezione di un oggetto. Di seguito il codice: Javascript

options1;
options2;

@wire(getObjectInfo, { objectApiName: CUSTOM_OBJECT })
    objectInfo;

    @wire(getPicklistValuesByRecordType, {objectApiName: CUSTOM_OBJECT, recordTypeId: '$objectInfo.data.defaultRecordTypeId' })
    picklistValues({data, error}) {
        if (data) {
            this.options1 = data.picklistFieldValues.Field_1__c.values;
            this.options2 = data.picklistFieldValues.Field_2__c.values;
        }
    }

Quindi, puoi impostarli nell'HTML come quello descritto dal documento dello sviluppatore.

Riferimento: Build UI for Picklists getPicklistValuesByRecordType

Risposte

1 arut Aug 18 2020 at 17:52

Puoi usare getPicklistValuesByRecordType invece di getPicklistValues. Ciò restituirà una mappa di valori di stringa e di elenco di selezione (come raccolta di valori di elenco di selezione ), che puoi quindi analizzare e impostare entrambe le caselle combinate in una volta. Ciò eliminerebbe anche la chiamata aggiuntiva al server Apex.