使用 ApolloClient 执行 GraphQL 查询时如何正确处理加载和部分状态?
How to properly handle loading and partial states when executing a GraphQL query using ApolloClient?
我正在开发一个从 GraphQL 端点收集数据的后端应用程序,我正在使用 ApolloClient
这样做:
const client = new ApolloClient({
uri: uri,
link: new HttpLink({ uri: uri, fetch }),
cache: new InMemoryCache({
addTypename: false,
}),
});
当我使用query
函数时:
client.query({
query: query,
variables: vars,
fetchPolicy: "no-cache",
})
它returns一个ApolloQueryResult
对象:
ApolloQueryResult<T> = {
data: T;
errors?: ReadonlyArray<GraphQLError>;
error?: ApolloError;
loading: boolean;
networkStatus: NetworkStatus;
partial?: boolean;
}
我的问题是我已经检查了文档,但它没有说明我应该如何处理 loading
和 partial
状态。我没有使用 React,我的印象是这些仅用于前端调用,但我想确定一下。
我测试了它,partial
和 loading
对我来说总是 undefined
,无论我调用哪个端点。
从节点处理这些问题的正确方法是什么?难道这些不是undefined
?
我自己也很好奇这个,所以看了下源码。
loading
:[可以忽略] 您在 ApolloClient never sets result.loading
to true. The front-end React useQuery hook 上调用的 query
方法确实如此,这是有道理的,因为它的工作是帮助 UI 呈现.
partial
:[取决于] ApolloQueryResult
typedef source 包含以下注释:“如果 result.data 从缓存中读取时缺少字段, result.partial 将是真实的...”。您的客户端配置为使用缓存,但查询具有 no-cache
策略。
我正在开发一个从 GraphQL 端点收集数据的后端应用程序,我正在使用 ApolloClient
这样做:
const client = new ApolloClient({
uri: uri,
link: new HttpLink({ uri: uri, fetch }),
cache: new InMemoryCache({
addTypename: false,
}),
});
当我使用query
函数时:
client.query({
query: query,
variables: vars,
fetchPolicy: "no-cache",
})
它returns一个ApolloQueryResult
对象:
ApolloQueryResult<T> = {
data: T;
errors?: ReadonlyArray<GraphQLError>;
error?: ApolloError;
loading: boolean;
networkStatus: NetworkStatus;
partial?: boolean;
}
我的问题是我已经检查了文档,但它没有说明我应该如何处理 loading
和 partial
状态。我没有使用 React,我的印象是这些仅用于前端调用,但我想确定一下。
我测试了它,partial
和 loading
对我来说总是 undefined
,无论我调用哪个端点。
从节点处理这些问题的正确方法是什么?难道这些不是undefined
?
我自己也很好奇这个,所以看了下源码。
loading
:[可以忽略] 您在 ApolloClient never sets result.loading
to true. The front-end React useQuery hook 上调用的 query
方法确实如此,这是有道理的,因为它的工作是帮助 UI 呈现.
partial
:[取决于] ApolloQueryResult
typedef source 包含以下注释:“如果 result.data 从缓存中读取时缺少字段, result.partial 将是真实的...”。您的客户端配置为使用缓存,但查询具有 no-cache
策略。