首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react-apollo中强制更新数据缓存?

如何在react-apollo中强制更新数据缓存?
EN

Stack Overflow用户
提问于 2017-05-05 11:42:34
回答 3查看 10.9K关注 0票数 7

当您重新访问其数据由react-apollo提供支持的页面时,如何使用refetch刷新数据

比方说,我第一次访问列表页面。默认情况下,apollo将获取查询并对其进行缓存。因此,当您在会话期间再次访问同一页面时,它将填充其缓存存储中的数据。如何强制apollo在每次挂载组件时都重新获取数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-05 11:42:34

你可以使用apollofetchPolicy,基于此,它将决定是否再次执行查询。

示例:

代码语言:javascript
复制
const graphQLOptions = {
  name: 'g_schemas',
  options: (props) => {
    return {
      variables: {
        name: props.name,
      },
      fetchPolicy: 'cache-and-network',
    }
  },
}

希望能有所帮助。

票数 10
EN

Stack Overflow用户

发布于 2017-05-11 22:31:09

补充一下Pranesh的答案:您要查找的fetchPolicynetwork-only

票数 9
EN

Stack Overflow用户

发布于 2018-12-01 08:19:46

如果您使用的是react-apollo的查询组件,例如:

代码语言:javascript
复制
import { Query } from "react-apollo";

你可以通过它的道具来应用fetchPolicy。下面是一个例子:

代码语言:javascript
复制
import gql from 'graphql-tag';
import React from 'react';
import { Query } from 'react-apollo';

const CounterView = ({ counter }) => (
  <div>{counter}</div>
);

const GET_COUNTER = gql`
  {
    counter
  }
`;

const Counter = () => (
  <Query query={GET_COUNTER} fetchPolicy={'network-only'}>
    {({ data }) => {
      return <CounterView {...data} />;
    }}
  </Query>
);

export default Counter;

参考文献:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43796121

复制
相关文章

相似问题

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