Lista de selección dinámica para lightning-combobox

Aug 18 2020

comunidad. Tengo una pregunta sobre dos campos personalizados con el tipo de listas de selección y lightning-combobox.
Suponga que el cuadro combinado 1 muestra el valor de la lista de selección 1, mientras que el cuadro combinado 2 muestra el valor de la lista de selección 2.

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

Usé el siguiente javascript para recuperar los valores de la lista de selección.

@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
         }
   });
}

Actualizaciones del 19 de agosto: Gracias por el consejo de @arut. CongetPicklistValuesByRecordType, puedo recuperar todos los valores de la lista de selección de un objeto. A continuación se muestra el código: 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;
        }
    }

Luego, puede configurarlos en el HTML como el que describe el documento del desarrollador.

Referencia: compilar interfaz de usuario para listas de selección getPicklistValuesByRecordType

Respuestas

1 arut Aug 18 2020 at 17:52

Puede utilizar getPicklistValuesByRecordType en lugar de getPicklistValues. Esto devolverá un mapa de valores de cadena frente a lista de selección (como Colección de valores de lista de selección ), que luego puede analizar y configurar ambos cuadros combinados de una vez. Esto también eliminaría la llamada adicional al servidor ápice.