0

我使用 Apollo 客户端在我的 React Native 应用程序中访问我的 GraphQL 端点。

const client = new ApolloClient({
    cache: new InMemoryCache(),
    link: new WebSocketLink({
      uri: graphqlEndpoint,
      options: {
        lazy: true,
        reconnect: true,
        timeout: 30000,
        connectionParams: {
          headers
        }
      }
    }),
    defaultOptions: {
      watchQuery: {
        fetchPolicy: 'cache-first'
      },
      query: {
        fetchPolicy: 'cache-first'
      },
    }
  });

在各种屏幕中,我使用 useQuery 挂钩查询数据。这是我的一个屏幕中的示例:

    const { loading, error, data } = useQuery(GET_RESTAURANT, {
        variables: { restaurantId, userId }
    });

我面临的问题是,每次我离开应用程序(从而将应用程序置于后台)时,查询都会重置。当我回到应用程序(从而将应用程序置于前台)时,加载设置为 true,数据设置为未定义。

这会产生一种行为,每次用户离开应用程序并返回时,屏幕似乎都会重新加载。理想情况下,屏幕不会重新加载,用户只需从她离开的地方继续。

如何防止每次应用状态更改时重新加载查询?非常感谢!

4

0 回答 0