首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apollo客户端-突变检测突变完成,然后运行代码

Apollo客户端-突变检测突变完成,然后运行代码
EN

Stack Overflow用户
提问于 2021-04-17 01:45:36
回答 1查看 361关注 0票数 0

我正在尝试实现一个更新函数,因此,我使用了GraphQL变异。但是,我需要能够检测到变异何时完成,这样我才能运行刷新函数。

到目前为止,我的突变是:

代码语言:javascript
运行
复制
const handleParameterUpdate = () => {
    let active = true;

    (async() => {
 
        await updateParameterMutation({variables: {
           parameterId: props.parameter.id, 
           newField: newFieldValue;
        }});

        if (!active) {
            return;
        }
        
    })().then(props.updateParams());
    
}

在我的父组件中,我有:

代码语言:javascript
运行
复制
const handleRefresh = () => {
    refetchJobParams({
        id: parent.id
    });
}

我的目的是在变异完成后运行handleRefresh函数。到目前为止,它在handleParametersUpdate之后立即运行,因此,我需要刷新以获得新的新参数。

EN

回答 1

Stack Overflow用户

发布于 2021-04-18 16:25:24

我在这里没看到你的useMutation。但是,有一个选项可供useMutation钩子添加一个onCompleted回调,该回调将在成功时调用。如果您还在从apollo查询中检索内容,那么我建议您也使用refetchQueries选项。这使您可以编写更少的代码,并让Apollo处理重新获取和完成回调。

Mutation options (onCompleted & refetchQueries)

但是,使用您的代码,如果您想在handleParameterUpdate中运行handleRefresh,那么您可以提取您的变体返回的任何值。

代码语言:javascript
运行
复制
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();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67129923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档