Динамический список выбора для lightning-combobox

Aug 18 2020

сообщество. У меня вопрос о двух настраиваемых полях с типами Раскрывающиеся списки и lightning-combobox.
Предположим, что поле со списком 1 показывает значение списка выбора 1, а поле со списком 2 показывает значение списка выбора 2.

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

Я использовал следующий javascript для получения значений списка выбора.

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

Обновления от 19 августа: Спасибо за совет от @arut. С помощьюgetPicklistValuesByRecordTypeя могу получить все значения из раскрывающегося списка объекта. Ниже приведен код: 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;
        }
    }

Затем вы можете установить их в HTML, как описано в документации разработчика.

Ссылка: Создание пользовательского интерфейса для списков выбора getPicklistValuesByRecordType

Ответы

1 arut Aug 18 2020 at 17:52

Вы можете использовать getPicklistValuesByRecordType вместо getPicklistValues. Это вернет карту значений строки и списка выбора (как Коллекция значений списка выбора ), которую вы затем можете проанализировать и установить оба поля со списком за один раз. Это также устранит дополнительный вызов сервера вершины.