以前,我正在运行类似这样的突变:
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
,也不能在这里使用钩子。每次运行此突变后,还能如何有效地重新获取数据?
答案 0 :(得分:1)
如果您在突变响应中返回ID以及有关该数据的其他一些独特数据,则Apollo将自动更新缓存