diff --git a/src/core/query.ts b/src/core/query.ts index adf8a2bc2d..03d8fb37f8 100644 --- a/src/core/query.ts +++ b/src/core/query.ts @@ -197,14 +197,12 @@ export class Query { // Get the new data let data: TResult | undefined = functionalUpdate(updater, prevData) - // Structurally share data between prev and new data if needed - if (this.config.structuralSharing) { - data = replaceEqualDeep(prevData, data) - } - // Use prev data if an isDataEqual function is defined and returns `true` if (this.config.isDataEqual?.(prevData, data)) { data = prevData + } else if (this.config.structuralSharing) { + // Structurally share data between prev and new data if needed + data = replaceEqualDeep(prevData, data) } // Try to determine if more data can be fetched