useQuery 首次返回渲染时的陈旧数据

问题描述 投票:0回答:1

我正在使用以下形式的 useQuery: const { data } = useQuery(foo, async () => {...})

哪里

foo 是一个在我执行操作时发生变化的值,例如,选择一个下拉菜单项 item1 当我这样做时,会使用过时的数据调用 useQuery 整个功能组件重新渲染,走向初始值 当我再次单击下拉列表中的 item1 时,该组件将使用正确的值进行渲染 我使用 staleTime: Infinity

我希望组件立即呈现正确的值,而不是多次重新加载组件。请告诉我在这种情况下使用 useQuery 是否是一个好主意

const ids: number[] = useMemo(() => { return sampleArray.map((sampleOption) => Number(sampleOption.Team.Id)); }, [sampleArray]); 

这里的sampleArray值是由下拉值的变化决定的

const { data: information} = useQuery(["key", ids], () => getInfo(ids), { staleTime: Infinity, enabled: !!param1 });

reactjs react-hooks react-query
1个回答
0
投票

我在这里找到了解决方案: https://github.com/TanStack/query/issues/3182

const queryClient=useQueryClient()
queryClient.removeQueries();
© www.soinside.com 2019 - 2024. All rights reserved.