Daftar Pilihan Dinamis untuk kotak kombo petir

Aug 18 2020

masyarakat. Saya mendapat pertanyaan tentang dua bidang khusus dengan jenis Daftar Pilih dan lightning-combobox.
Misalkan combobox 1 menunjukkan nilai Picklist 1 sedangkan combobox 2 menunjukkan nilai Picklist 2.

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

Saya menggunakan javascript berikut untuk mengambil nilai daftar pilihan.

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

Pembaruan dari 19 Agustus: Terima kasih atas saran dari @arut. DengangetPicklistValuesByRecordType, saya dapat mengambil semua nilai daftar pilihan suatu objek. Di bawah ini adalah kodenya: 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;
        }
    }

Kemudian, Anda dapat mengaturnya ke dalam HTML seperti yang dijelaskan oleh dokumen pengembang.

Referensi: Buat UI untuk Daftar Pilihan getPicklistValuesByRecordType

Jawaban

1 arut Aug 18 2020 at 17:52

Anda dapat menggunakan getPicklistValuesByRecordType sebagai ganti getPicklistValues. Ini akan mengembalikan peta nilai string vs daftar pilihan (sebagai Koleksi Nilai Daftar Pilihan ), yang kemudian dapat Anda parse dan menyetel kedua kotak kombo sekaligus. Ini juga akan menghapus panggilan server apex tambahan.