About this question
I'm building a lwc combobox with calling Apex method. What I want to do is to show all field labels of Account in a dropdown list. I confirmed the lwc receives the value from Apex method but my lwc doesn't show anything if I clicked the button as follows:
Here's my JS code:
import { LightningElement,track, wire } from 'lwc'; import retrieveFields from '@salesforce/apex/RetrieveShinseiFields.retrieveFields'; export default class DisplayShinseiFields extends LightningElement { @track fieldsInfo=[]; @track obj; value; @wire(retrieveFields) wiredLabels({error, data}){ if(data){ for(var key in data){ this.obj={label:key, value:data[key]}; this.fieldsInfo.push(this.obj); } } if(error){ this.error=error; } } handleChange(event) { this.value = event.detail.value; } }
And the Apex class:
public with sharing class RetrieveShinseiFields { @AuraEnabled(cacheable=true) public static MapretrieveFields(){ Map My htmlfields = Account.getSObjectType().getDescribe().fields.getMap(); Map fInfo = new Map (); for(SObjectField f : fields.values()) { string fLabel = f.getDescribe().getLabel(); string fName = f.getDescribe().getName(); fInfo.put(fLabel, fName); } System.debug(finfo); return fInfo; } }
What I tried:
I've already read these article:
I've checked the "fieldsInfo" has the value using for:each in html as follows.