运行突变后的refetchQueries

时间:2020-09-15 13:04:04

标签: javascript reactjs typescript graphql apollo

以前,我正在运行类似这样的突变:

int

每次我运行此突变时,export const useEditLocationName = () => { const [editFavoriteLocationName] = useEditFavoriteLocationNameMutation({ refetchQueries: [{ query: GetMyFavouritePlacesDocument}], awaitRefetchQueries: true, onCompleted: () => { Alert.alert('Name'); }, onError: () => { Alert.alert('Oops'); }, }); const editLocationName = async ( favouritePlaceId: number, customisedName: string, ) => { editFavoriteLocationName({ variables: { id: favouritePlaceId, label: customisedName }, }); return null; }; return editLocationName; }; (即useGetMyFavouritePlacesQuery)的结果都会自动更新(无论在何处使用此查询)。这样就可以很好地工作,然后GetMyFavouritePlacesDocument不需要任何参数。但是,既然api中有一些更改,我需要将useGetMyFavouritePlacesQuery传递给查询,以便它返回结果。我该怎么办?

我不能将变量直接传递给id,也不能在这里使用钩子。每次运行此突变后,还能如何有效地重新获取数据?

1 个答案:

答案 0 :(得分:1)

如果您在突变响应中返回ID以及有关该数据的其他一些独特数据,则Apollo将自动更新缓存

下面是一个示例https://www.freecodecamp.org/news/how-to-update-the-apollo-clients-cache-after-a-mutation-79a0df79b840/