我正在尝试实现一个更新函数,因此,我使用了GraphQL变异。但是,我需要能够检测到变异何时完成,这样我才能运行刷新函数。
到目前为止,我的突变是:
const handleParameterUpdate = () => {
let active = true;
(async() => {
await updateParameterMutation({variables: {
parameterId: props.parameter.id,
newField: newFieldValue;
}});
if (!active) {
return;
}
})().then(props.updateParams());
}
在我的父组件中,我有:
const handleRefresh = () => {
refetchJobParams({
id: parent.id
});
}
我的目的是在变异完成后运行handleRefresh
函数。到目前为止,它在handleParametersUpdate
之后立即运行,因此,我需要刷新以获得新的新参数。
发布于 2021-04-18 16:25:24
我在这里没看到你的useMutation。但是,有一个选项可供useMutation
钩子添加一个onCompleted
回调,该回调将在成功时调用。如果您还在从apollo查询中检索内容,那么我建议您也使用refetchQueries
选项。这使您可以编写更少的代码,并让Apollo处理重新获取和完成回调。
Mutation options (onCompleted & refetchQueries)
但是,使用您的代码,如果您想在handleParameterUpdate
中运行handleRefresh
,那么您可以提取您的变体返回的任何值。
const handleParameterUpdate = async () => {
const returnValue = await updateParameterMutation({variables: {
parameterId: props.parameter.id,
newField: newFieldValue;
}});
// whatever check you need to do on your mutation,
if (returnValue){
handleRefresh();
}
}
https://stackoverflow.com/questions/67129923
复制相似问题