번개 콤보 상자에 대한 동적 선택 목록

Aug 18 2020

커뮤니티. 유형 Picklists 및 lightning-combobox.
combobox 1이 Picklist 1 값을 표시하고 combobox 2가 Picklist 2 값을 표시한다고 가정합니다.

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

다음 자바 스크립트를 사용하여 선택 목록 값을 가져 왔습니다.

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

8 월 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의 빌드 UI

답변

1 arut Aug 18 2020 at 17:52

대신 getPicklistValuesByRecordType 을 사용할 수 있습니다 getPicklistValues. 그러면 문자열 대 선택 목록 값의 맵 ( Picklist Values ​​Collection ) 이 반환되며,이 맵은 한 번에 두 콤보 상자를 구문 분석하고 설정할 수 있습니다. 이것은 또한 추가 apex 서버 호출을 제거합니다.