react.query怎么在onSuccess中获取请求参数?-灵析社区

LightSea

queryClient.setQueryDefaults('list', { queryFn: async ({ queryKey }) => { const [, page, pageSize] = queryKey as ListQueryKey; return await getSomeThing({ page, size: pageSize}); }, onSuccess: (data, variables, context) => { const previousData = queryClient.getQueryData('list'); // 获取之前的数据 const page = variables[1]; // 从查询键中获取 page 参数 // 判断 page 是否等于 1,如果是,则替换之前的数据,否则合并新数据 if (page === 1) { queryClient.setQueryData('list', data); // 替换之前的数据 } else if (previousData) { // 合并新数据到之前的数据中 queryClient.setQueryData('list', [...previousData, ...data]); } }, }); 上面的代码中,我需要在onSuccess中获取page的值,但是onSuccess的参数只有data,没有variables,react-query的版本是3.29,请问怎么解决。

阅读量:304

点赞量:15

问AI
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]); } }, });