function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ApexDevApexDev 

Refresh Apex in LWC not working

Hi Developers :) Can somebody look at my code, and describe me why the refresh Apex is not working after deleting record? 
 
import { LightningElement, wire, track, api } from 'lwc';
import getWOLIs from '@salesforce/apex/WOLIController.getWOLIs';
import { refreshApex } from '@salesforce/apex';
import { updateRecord } from 'lightning/uiRecordApi';
import delSelectedWoli from '@salesforce/apex/WOLIController.deleteWolis';

import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LineItemNumber_FIELD from '@salesforce/schema/WorkOrderLineItem.LineItemNumber';
import Work_to_do__c_FIELD from '@salesforce/schema/WorkOrderLineItem.Work_to_do__c';
import Status_FIELD from '@salesforce/schema/WorkOrderLineItem.Status';
import ListPrice_FIELD from '@salesforce/schema/WorkOrderLineItem.ListPrice';
import AssetId_FIELD from '@salesforce/schema/WorkOrderLineItem.AssetId';
import Discount_FIELD from '@salesforce/schema/WorkOrderLineItem.Discount';
import Duration_FIELD from '@salesforce/schema/WorkOrderLineItem.Duration';
import ID_FIELD from '@salesforce/schema/WorkOrderLineItem.Id';

const actions = [
     
     
    { label: 'Delete', name: 'delete'}
];

const COLS = [
    {
        label: 'Line Item Number',
        fieldName: LineItemNumber_FIELD.fieldApiName,
        editable: false
    },
    {
        label: 'Work to do',
        fieldName: Work_to_do__c_FIELD.fieldApiName,
        editable: true
    },
    {
        label: 'Device',
        fieldName: AssetId_FIELD.fieldApiName,
        editable: true
    },

    { label: 'Status', fieldName: Status_FIELD.fieldApiName, editable: false },
    {
        label: 'List Price',
        fieldName: ListPrice_FIELD.fieldApiName,
        type: 'double',
        editable: true
    },
    {
        label: 'Discount',
        fieldName: Discount_FIELD.fieldApiName,
        type: 'percent',
        editable: true
    },
    {
        label: 'Duration',
        fieldName: Duration_FIELD.fieldApiName,
        type: 'double',
        editable: true
    },
    {
        type: 'action',
        typeAttributes: {
            rowActions: actions,
            menuAlignment: 'right'
        }}
];
export default class WoliNewLWC extends LightningElement {
    @api recordId;
    columns = COLS;
    draftValues = [];


    // non-reactive variables
    selectedRecords = [];
    refreshTable;
    error;

    // retrieving the data using wire service 


    @wire(getWOLIs, { woId: '$recordId' })
    wolis;
    

    handleRowActions(event) {
        let actionName = event.detail.action.name;

        window.console.log('actionName ====> ' + actionName);

        let row = event.detail.row;

        window.console.log('row ====> ' + row);
        // eslint-disable-next-line default-case
        switch (actionName) {
            case 'delete':
                this.deleteWolis(row);
                //break;
        }
    }

    async handleSave(event) {
        // Convert datatable draft values into record objects
        const records = event.detail.draftValues.slice().map((draftValue) => {
            const fields = Object.assign({}, draftValue);
            return { fields };
        });

        // Clear all datatable draft values
        this.draftValues = [];

        try {
            // Update all records in parallel thanks to the UI API
            const recordUpdatePromises = records.map((record) =>
                updateRecord(record)
            );
            await Promise.all(recordUpdatePromises);

            // Report success with a toast
            this.dispatchEvent(
                new ShowToastEvent({
                    title: 'Success',
                    message: 'Work Order Line Item updated',
                    variant: 'success'
                })
            );

            // Display fresh data in the datatable
            await refreshApex(this.wolis);
        } catch (error) {
            this.dispatchEvent(
                new ShowToastEvent({
                    title: 'Error updating or reloading work order line items',
                    message: error.body.message,
                    variant: 'error'
                })
            );
        }
    }

    deleteWolis(currentRow) {
        let currentRecord = [];
        currentRecord.push(currentRow.Id);
        this.showLoadingSpinner = true;

        // calling apex class method to delete the selected contact
        delSelectedWoli({lstWolIds: currentRecord})
        .then(result => {
            window.console.log('result ====> ' + result);
            this.showLoadingSpinner = false;

            // showing success message
            this.dispatchEvent(new ShowToastEvent({
                title: 'Success!',
                message: currentRow.LineItemNumber +' Work Order Line Item deleted.',
                variant: 'success'
            }),);

            // refreshing table data using refresh apex
             return refreshApex(this.refreshTable);

        })
        .catch(error => {
            window.console.log('Error ====> '+error);
            this.dispatchEvent(new ShowToastEvent({
                title: 'Error!!', 
                message: error.message, 
                variant: 'error'
            }),);
        });
    }
    handleSuccess() {
        return refreshApex(this.refreshTable);
    }
}