下面是我实际使用React Query的部分。
我编写了如下代码,ReactQuery不断地重新获取API。
如何仅在参数prodCode和pageable发生更改时才进行API调用?
// react-query
const getReviewList = useQuery(
['getReviewList', prodCode, pageable],
() =>
ReviewApi.getReviewList({
prodCode,
pageable
}),
{
enabled: !!prodCode,
refetchOnWindowFocus: false,
onSuccess: (data) => {
if (!_.isUndefined(data)) {
const copiedReviewList = reviewList.slice();
copiedReviewList.push(...data.returnData);
// recoil state setting
setReviewList(copiedReviewList);
}
},
onError: () => {
setReviewList([] as Array<ReviewModel>);
}
}
);
1条答案
按热度按时间qybjjes11#
React Query不会重新获取。您应该让React处理这一问题,方法是将
propCode
和pageable
作为状态变量。onSuccess
和onError
用于数据相关的内容,因此不要更新其中的React状态变量。我建议创建一个特定的查询类-
useReviewListFetcher
,然后在组件中使用它。