I have a lwc
html file code :
<template if:true={sObjectRecordList}> <lightning-datatable key-field="Id" data={sObjectRecordList} columns={columns} onsave={handleSave} draft-values={draftValues}> </lightning-datatable> </template> Now I am fetching and updating the records in the datatable using apex class methods
/*The apex code which fetches the datatable records*/ @wire(setSObjectRecordList , { sObjectName : 'Contact', sObjectFieldList : '$sObjectFieldDetails', parentRecordId : '$recordId', parentRecordIdFieldName : 'AccountId' }) sObjectRecords({error, data }) { if (data) { this.sObjectRecordList = data; } else if (error) { this.error = error; } } /*The apex code for updating the records edited in the datatable*/ async handleSave(event) { const updatedFields = event.detail.draftValues; // Prepare the record IDs for getRecordNotifyChange() const notifyChangeIds = updatedFields.map(row => { return { "recordId": row.Id } }); // Pass edited fields to the updateContacts Apex controller await dmlOperationOnSObjectRecords({data: updatedFields}) .then(result => { this.dispatchEvent( new ShowToastEvent({ title: 'Success', message: 'Records updated', variant: 'success' }) ); // Refresh LDS cache and wires getRecordNotifyChange(notifyChangeIds); // Display fresh data in the datatable refreshApex(this.sObjectRecordList); }).catch(error => { this.dispatchEvent( new ShowToastEvent({ title: 'Error updating or refreshing records', message: error.body.message, variant: 'error' }) ); }); } My records are getting updated via the methods.
However, the data is not getting refreshed in the datatable using the refreshApex method, despite using a separate variable while fetching the records for the datatable.