如何解决Apollo客户端-多次更新后的refetchQueries
我正在使用Apollo客户端3.0。 我正在尝试管理人员表,并使用useMutation挂钩进行更新,
我的代码正在使用多个API调用,我想仅在上一次API校准之后触发refetchQueries
例如:
const [updateName] = useMutation(updateNameD)
const [updateAge] = useMutation(updateAgeD)
const [updateCity] = useMutation(updateCityD,{refetchQueries: () => [{ query: UsersDocument }],})
问题在于,updateCity调用不会总是最后一次调用,而且我不想在每次调用中都调用refetchQueries
解决方法
如果需要一次执行所有三个突变,则可以将三个突变查询合并为一个查询,只有在突变查询(合并一个)完成后,您的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
,
找到了另一个解决方法: 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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。