Lightning-Combobox için Dinamik Seçim Listesi

Aug 18 2020

topluluk. Picklists ve türünde iki özel alan hakkında bir sorum var lightning-combobox.
Combobox 1'in Picklist 1 değerini gösterirken, combobox 2'nin Picklist 2 değerini gösterdiğini varsayalım.

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

Seçim listesi değerlerini almak için aşağıdaki javascript'i kullandım.

@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 Ağustos'tan güncellemeler: @arut'un tavsiyesi için teşekkürler. İlegetPicklistValuesByRecordType, bir nesnenin tüm seçim listesi değerlerini getirebilirim. Kod aşağıdadır: 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;
        }
    }

Ardından, bunları geliştirici dokümanının açıkladığı gibi HTML'ye ayarlayabilirsiniz.

Başvuru: Seçim Listeleri için Kullanıcı Arayüzü Oluştur getPicklistValuesByRecordType

Yanıtlar

1 arut Aug 18 2020 at 17:52

Bunun yerine getPicklistValuesByRecordType kullanabilirsiniz getPicklistValues. Bu, dize ve seçim listesi değerlerinin bir haritasını döndürür ( Seçim Listesi Değerleri Koleksiyonu olarak ), ardından her iki açılır kutuyu da tek seferde ayrıştırıp ayarlayabilirsiniz. Bu aynı zamanda ek apeks sunucu çağrısını da kaldıracaktır.