facebook / facebook/relay

Using refetch with cached variables doesn't render the previous data? Apply fetchPolicy 'network-only' throws warning

Open
#3,428 2 comments 0 reactions 0 assignees View on GitHub
wontfix
Dominant language
Rust
Stars
19k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

This is my code:
```
const { viewer } = useLazyLoadQuery(
NearbyViewerGraphQL,
{
nearbyPagination_count: 20,
nearbyPagination_boundingPoints: userLocation,
nearbyPagination_categories: [],
nearbyPagination_name_Icontains: '',
nearbyPagination_favorite: false,
nearbyPagination_onlyActiveCampaigns: true,
nearbyPagination_isClaimedCampaigns: false,
},
{ fetchPolicy: 'network-only' }
);

const { data, loadNext, hasNext, isLoadingNext, refetch } = usePaginationFragment<
NearbyPaginationFragmentGraphQLQuery,
NearbyPaginationFragmentGraphQL_viewer$key
>(NearbyPaginationFragmentGraphQL, viewer);

let delayTimer;

useEffect(() => {
if (delayTimer) clearTimeout(delayTimer);
const refetchCategories = nearbySearchFilters
.filter((i) => !categoryStatusFilters.includes(i))
.map((i) => categoryDataArray.find((ci) => ci.name === i).pk);

const refetchFavorite = nearbySearchFilters.includes('Favorites');

const refetchOnlyActiveCampaigns = nearbySearchFilters.includes('Active');

const refetchIsClaimedCampaigns = nearbySearchFilters.includes('Claimed');

delayTimer = setTimeout(() => {
console.log('refetch');
refetch({
nearbyPagination_count: 20,
nearbyPagination_boundingPoints: nearbyRegion,
nearbyPagination_categories: refetchCategories,
nearbyPagination_name_Icontains: nearbySearchText,
nearbyPagination_favorite: refetchFavorite,
nearbyPagination_onlyActiveCampaigns: refetchOnlyActiveCampaigns,
nearbyPagination_isClaimedCampaigns: refetchIsClaimedCampaigns,
});
}, 1000);

return () => {
clearTimeout(delayTimer);
};
}, [nearbySearchText, nearbySearchFilters, nearbyRegion]);
```
this is my variables when initialized:
`{
"nearbyPagination_boundingPoints": {
"longitude": 124.36329815536737,
"latitude": 8.266441061852722,
"latitudeDelta": 0.7079559147306425,
"longitudeDelta": 0.37976861000061035
},
"nearbyPagination_categories": [],
"nearbyPagination_count": 20,
"nearbyPagination_cursor": "",
"nearbyPagination_favorite": false,
"nearbyPagination_isClaimedCampaigns": false,
"nearbyPagination_name_Icontains": "",
"nearbyPagination_onlyActiveCampaigns": true
}`
when i changed nearbyPagination_isClaimedCampaigns to true, it fetches data correctly but when i revert to nearbyPagination_isClaimedCampaigns to false/initialized variables the data is not updating? where the result is the same as after nearbyPagination_isClaimedCampaigns is true. when i do this:
```
refetch(
{
nearbyPagination_count: 20,
nearbyPagination_boundingPoints: nearbyRegion,
nearbyPagination_categories: refetchCategories,
nearbyPagination_name_Icontains: nearbySearchText,
nearbyPagination_favorite: refetchFavorite,
nearbyPagination_onlyActiveCampaigns: refetchOnlyActiveCampaigns,
nearbyPagination_isClaimedCampaigns: refetchIsClaimedCampaigns,
},
{
fetchPolicy: 'network-only',
}
);
```
it's working properly but there's warning when i use initialized variables again:
` Relay: Unexpected after cursor ``, edges must be fetched from the end of the list (`YXJyYXljb25uZWN0aW9uOjI=`)`
is there a way to do it without warning?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.