Apollo GraphQL在刷新应用程序时使用useQuery无法定义本地状态

Apollo GraphQL在刷新应用程序时使用useQuery无法定义本地状态,graphql,apollo,react-apollo,apollo-client,Graphql,Apollo,React Apollo,Apollo Client,我在第一次初始加载时获取数据,然后如果我刷新我的应用程序,我的数据将变得未定义。只有在更改默认状态时,我才能再次获得初始加载数据 const cache = new InMemoryCache(); cache.writeData({ data: { apples: { sets: [], __typename: 'Apples', }, }, }); 在我的一个组件中,我有: const {data, loading, error} = use

我在第一次初始加载时获取数据,然后如果我刷新我的应用程序,我的数据将变得未定义。只有在更改默认状态时,我才能再次获得初始加载数据

const cache = new InMemoryCache();
cache.writeData({
  data: {
    apples: {
      sets: [],
      __typename: 'Apples',
    },
  },
});
在我的一个组件中,我有:

const {data, loading, error} = useQuery(appleSets);
console.log('local state', data, loading, error, useQuery(appleSets));

const appleSets = gql`
  query {
    apples @client {
      sets
    }
  }
`;

在第一次加载时,我会用apple数据记录控制台,并设置空数组,但当我刷新时,它会变成
未定义的
。如果更改默认值,初始加载将再次获取数据。为什么这是未定义的?

数据在最初总是未定义的,即使它在缓存中可用。考虑到这一点,它是保持未定义状态,还是您只关心它最初未定义?了解您在开发中如何运行此应用程序也会很有帮助?这是CRA吗?Next.js?@DanielRearden我正在和React Native一起运行。问题是,我的数据显示在初始加载时。在我对默认值进行第一次更改后,它将显示在控制台日志中。但是如果我在其他地方做了更改(它会刷新应用程序),那么数据将变得未定义。@hellomello您需要使用存储来保存您的现金@好的,谢谢!我想这就是有效的方法。
数据
最初总是未定义的,即使它在缓存中可用。考虑到这一点,它是保持未定义状态,还是您只关心它最初未定义?了解您在开发中如何运行此应用程序也会很有帮助?这是CRA吗?Next.js?@DanielRearden我正在和React Native一起运行。问题是,我的数据显示在初始加载时。在我对默认值进行第一次更改后,它将显示在控制台日志中。但是如果我在其他地方做了更改(它会刷新应用程序),那么数据将变得未定义。@hellomello您需要使用存储来保存您的现金@好的,谢谢!我想这就是成功的原因。