Wire Apex method to a function using @wire decorator in LWC

Let's look at how to Wire the Apex method to a function using @wire decorator in LWC.

This is the best option when it comes to using @wire decorator, tell you why with this variant we can debug the data that we get back from the Apex method.

It's not that we cannot debug it when we wire an Apex method with a property, but there is a bit of process that's involved to see the output with this approach. We need to use the template file and use <template for:each="" for:item=""></template> to debug the code.

Let me walk you through the sample code.

public with sharing class DatatableController {
    public DatatableController() {

    }
    //it's mandate to use cacheable=true
    @AuraEnabled(cacheable=true)
    public static List<Account> allRecords(){
        return [SELECT Id, Name, Rating FROM Account];
    }
}
DatatableController.cls

And here is the controller file!

import { LightningElement, wire } from "lwc";

import allRecord from "@salesforce/apex/DatatableController.allRecords";

export default class DataTable extends LightningElement {
  @wire(allRecord)
  records({ error, data }) {
    if (data) {
      console.log(data);
    } else {
      console.log(error);
    }
  }
}

datatable.js

Hope this helps!

Subscribe to Salesforce Casts

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe