Reactjs Apollo是否缓存来自查询组件的查询?

Reactjs Apollo是否缓存来自查询组件的查询?,reactjs,apollo,react-apollo,apollo-client,Reactjs,Apollo,React Apollo,Apollo Client,我有一个Query组件,它从GraphQL服务器检索数据,一切都很好 我目前正在向一个无状态子组件传递道具,我希望通过将其设置为从本地Apollo缓存读取数据(子组件永远不能先于父组件加载),使其无道具 不过我有个错误。我从中了解到,如果缓存中没有任何内容,readQuery方法将失败,但这让我感到困惑:数据应该在缓存中,因为它以前在父组件中加载过。还是不是 以下是源代码: 调用readQuery只需从缓存中读取一次,这几乎不是您想要的。查询组件订阅缓存中的更改,并在缓存未命中时触发网络

我有一个
Query
组件,它从GraphQL服务器检索数据,一切都很好

我目前正在向一个无状态子组件传递道具,我希望通过将其设置为从本地Apollo缓存读取数据(子组件永远不能先于父组件加载),使其无道具

不过我有个错误。我从中了解到,如果缓存中没有任何内容,
readQuery
方法将失败,但这让我感到困惑:数据应该在缓存中,因为它以前在父组件中加载过。还是不是

以下是源代码:


调用
readQuery
只需从缓存中读取一次,这几乎不是您想要的。
查询
组件订阅缓存中的更改,并在缓存未命中时触发网络请求(假设您首先使用默认的
缓存
)。您可以在应用程序中安全地使用多个
Query
组件进行相同的查询--只要它们使用相同的
变量
,呈现多个
Query
组件只会向服务器发出一个请求


readQuery
仅当需要读取并更新缓存的一部分时,才应在
update
函数中使用,不要将其用于向组件提供数据。如果您只想从缓存中读取数据,可以使用
仅缓存
策略,但同样,这是很少需要的,因为Apollo非常聪明,能够知道查询何时进行。

调用
readQuery
只需从缓存中读取一次,这几乎不是您想要的。
查询
组件订阅缓存中的更改,并在缓存未命中时触发网络请求(假设您首先使用默认的
缓存
)。您可以在应用程序中安全地使用多个
Query
组件进行相同的查询--只要它们使用相同的
变量
,呈现多个
Query
组件只会向服务器发出一个请求


readQuery
仅当需要读取并更新缓存的一部分时,才应在
update
函数中使用,不要将其用于向组件提供数据。如果您只想从缓存中读取,可以使用
仅缓存
策略,但同样,这是很少需要的,因为Apollo非常聪明,能够知道查询何时进行。

详细信息、代码、查询、类型、未定义
id
字段……我们需要更多上下文来确定此行为的潜在原因。请包括相关代码(即两个组件)。详细信息、代码、查询、类型、定义的无
id
字段……我们需要更多上下文来确定此行为的潜在原因。请包括相关代码(即两个组件)。