我正在使用Apollo客户端3.0。 我正在尝试管理人员表,并使用useMutation挂钩进行更新,
我的代码正在使用多个API调用,我想仅在上一次API校准之后触发refetchQueries
例如:
const [updateName] = useMutation(updateNameD)
const [updateAge] = useMutation(updateAgeD)
const [updateCity] = useMutation(updateCityD, {refetchQueries: () => [{ query: UsersDocument }],})
问题在于,updateCity调用不会总是最后一次调用,而且我不想在每次调用中都调用refetchQueries
答案 0 :(得分:1)
如果需要一次执行所有三个突变,则可以将三个突变查询合并为一个查询,只有在突变查询(合并一个)完成后,您的refetchQueries才会执行。请不要在合并查询时使用一个# let left, right be the given Polygons
extended_left = Polygon( [ left.bounds[:2], (right.bounds[0], left.bounds[1]), \
(right.bounds[0], left.bounds[3]), left.bounds[2:] ] )
钩子。
让我知道您是否有其他用例。
[编辑] 如果您无法对查询进行分组,则可以采用以下方法。
useMutation
答案 1 :(得分:0)
找到了另一个解决方法: useQuery钩子还返回refetch方法, 那么您可以在任何地方使用它
const [updateName] = useMutation(updateNameD)
const [updateAge] = useMutation(updateAgeD)
const [updateCity] = useMutation(updateCityD)
const {data, refetch} = useQuery(UsersDocument)
await Promise.all([updateName(), updateAge(), updatedCity()])
refetch()