首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在服务器返回特定值之前重新获取?(React-Apollo)

在React-Apollo中,可以通过使用refetchQueries选项来重新获取服务器返回的特定值。

refetchQueries选项是一个函数或一个字符串数组,用于指定在服务器返回特定值之前需要重新获取的查询。当服务器返回特定值后,Apollo Client将自动重新获取这些查询,并更新相关的组件。

下面是一个示例代码,演示如何在服务器返回特定值之前重新获取数据:

代码语言:javascript
复制
import { useMutation } from '@apollo/client';
import { MY_MUTATION, MY_QUERY } from './graphql';

const MyComponent = () => {
  const [myMutation] = useMutation(MY_MUTATION, {
    refetchQueries: [{ query: MY_QUERY }],
  });

  const handleButtonClick = () => {
    myMutation();
  };

  return (
    <div>
      <button onClick={handleButtonClick}>执行Mutation</button>
    </div>
  );
};

export default MyComponent;

在上面的代码中,我们使用useMutation钩子来执行一个名为MY_MUTATION的mutation。在useMutation的配置中,我们通过refetchQueries选项指定了一个需要重新获取的查询MY_QUERY

当按钮被点击时,myMutation函数将被调用,发送mutation请求到服务器。一旦服务器返回特定值,Apollo Client将自动重新获取MY_QUERY查询,并更新相关的组件。

这样,我们就可以在服务器返回特定值之前重新获取数据。关于React-Apollo的更多信息和使用方法,你可以参考腾讯云的Apollo Client产品文档:Apollo Client产品文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Apollo在有赞的实践

    在集中式开发时代,配置文件基本足够用了,因为那时配置的管理通常不会成为一个很大的问题,简单一点来说,系统上了生产之后,如果需要修改一个配置,登录到这台生产机器上,修改这个配置文件,然后reload配置文件并不是什么很大的负担。但是在互联网时代,我们的应用都是分布式系统,部署在N台机器上,如果在线上一台一台的重启机器,会造成很大的负担和不稳定。并且对于公司来说,会有多个环境区分(测试环境和线上环境),有时还需要对同一环境中的不同集群做不同的配置。因此需要一个配置中心来集中管理不同环境、不同集群的配置,修改配置后能够实时推送到应用端。

    03

    GraphQL是API的未来,但它并非银弹

    我认为,GraphQL 将改变世界。将来,你可以使用 GraphQL 查询世界上的任何系统。我在创造这样的未来。那么我为什么要对使用 GraphQL 进行辩驳呢?我个人最讨厌的是,社区一直在宣传 GraphQL 的好处,而这些好处却非常普通,并且与 GraphQL 实际上没有任何关系。如果我们想推广采用,那么我们应该诚实,应该摘掉有色眼镜。这篇文章是对 Kyle Schrade 的文章“为什么使用 GraphQL”的回应。这并不是批评。这篇文章是一个很好的讨论基础,因为它代表了我在社区中经常听到的观点。如果你读了整篇文章,当然这会花一些时间,你就会完全理解,为什么我认为 Kyle 的文章应该改名为“为什么使用 Apollo”。

    01

    【译】Graphql, gRPC和端对端类型检验

    StackPath最近发布了新的门户网站,它让用户可以一站式地配置我们所提供的服务(CDN,WAF, DNS以及Monitoring)。这个项目涉及到整合不同的数据源,以及一些现有和全新的系统。虽然我们认为开发效率的优先级在一个新启动的项目中是最高的,但我们还是希望在保证足够快的开发进度的前提下,尽可能早地做一些能够保证产品长期稳定运行的技术投资,以便我们能够持续不断地在一个健壮的基础设施上添加新的功能特性。最终我们选择了Apollo GraphQL+gRPC+React+TypeScript这样一套技术栈,并对使用它们的结果感到满意。在这篇博客中,我们会解释为何选择这些技术栈,并通过一个简单的示例项目进行论述。

    02
    领券