From f8ca59c2b5b7e4357f6ea5712ea805848dca1765 Mon Sep 17 00:00:00 2001 From: Luca Ziliani Date: Mon, 17 Mar 2025 13:10:13 +0100 Subject: [PATCH] try to solve #4009 --- packages/toolkit/src/query/react/buildHooks.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/toolkit/src/query/react/buildHooks.ts b/packages/toolkit/src/query/react/buildHooks.ts index 5930281d27..a2b450cfd1 100644 --- a/packages/toolkit/src/query/react/buildHooks.ts +++ b/packages/toolkit/src/query/react/buildHooks.ts @@ -1471,6 +1471,7 @@ export function buildHooks({ // if we had a last result and the current result is uninitialized, // we might have called `api.util.resetApiState` // in this case, reset the hook + let shouldResetData = false; if (lastResult?.endpointName && currentState.isUninitialized) { const { endpointName } = lastResult const endpointDefinition = context.endpointDefinitions[endpointName] @@ -1488,11 +1489,13 @@ export function buildHooks({ }) ) lastResult = undefined + shouldResetData = true } // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args let data = currentState.isSuccess ? currentState.data : lastResult?.data if (data === undefined) data = currentState.data + else if(shouldResetData) data = undefined const hasData = data !== undefined @@ -1531,6 +1534,7 @@ export function buildHooks({ // if we had a last result and the current result is uninitialized, // we might have called `api.util.resetApiState` // in this case, reset the hook + let shouldResetData = false; if (lastResult?.endpointName && currentState.isUninitialized) { const { endpointName } = lastResult const endpointDefinition = context.endpointDefinitions[endpointName] @@ -1547,11 +1551,13 @@ export function buildHooks({ }) ) lastResult = undefined + shouldResetData = true } // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args let data = currentState.isSuccess ? currentState.data : lastResult?.data if (data === undefined) data = currentState.data + else if(shouldResetData) data = undefined const hasData = data !== undefined