queryClient.setQueryDefaults('list', { queryFn: async ({ queryKey }) => { const [, page, pageSize] = queryKey as ListQueryKey; const data = await getSomeThing({ page, size: pageSize}); return { data, page }; // 把 page 参数和数据一起返回 }, onSuccess: (data, variables, context) => { const previousData = queryClient.getQueryData('list'); // 获取之前的数据 const page = context.page; // 从 context 中获取 page 参数 // 判断 page 是否等于 1,如果是,则替换之前的数据,否则合并新数据 if (page === 1) { queryClient.setQueryData('list', data.data); // 替换之前的数据 } else if (previousData) { // 合并新数据到之前的数据中 queryClient.setQueryData('list', [...previousData, ...data.data]); } }, });