【发布时间】:2021-01-02 05:56:14
【问题描述】:
以前,我运行的突变有点像这样:
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 都会自动更新(无论在哪里使用这个查询)。这很有效,然后useGetMyFavouritePlacesQuery 不需要任何参数。但是,既然 api 发生了一些变化,我需要将 id 传递给查询,以便它返回结果。我该怎么做?
我不能将变量直接传递给GetMyFavouritePlacesDocument,我也不能在这里使用钩子。每次运行此突变时,我还能如何有效地重新获取数据?
【问题讨论】:
标签: javascript reactjs typescript graphql apollo