反应阿波罗客户端应用程序。我试图使用readQuery从缓存中读取数据,但无法读取缓存字段。
这里有一个纲要:
组件SinglePost
调用useQuery
,它执行我的GET_POST
查询并缓存结果。GET_POST
查询返回类型Post!
。一切都很好,开发工具显示ROOT_QUERY
包含一个名为getPost的字段和该帖子。
const { loading, data } = useQuery(GET_POST, {
variables: {
postID,
}
});
SinglePost
有一个子组件DeleteButton
,它会在单击时删除评论。它调用useM0016
并删除评论。DELETE_COMMENT
查询返回类型Comment!
。
const [deleteComment] = useMutation(DELETE_COMMENT, {
variables: {
postID,
commentID,
},
});
Post有一个注释数组,现在我需要在缓存中更新它的数组并删除已删除的注释。我使用deleteComment
突变中的update
函数来获取缓存对象并使用readQuery
从中获取getPost字段,但它返回null,即使它存在于开发工具中。
update(cache, result) {
const cacheData = cache.readQuery({
query: GET_POST,
});
// code that doesn't run because cacheData is null
}
我怀疑当通过返回Post
类型的突变来突变帖子时,它成功地读取了getPost字段,但当突变查询返回Comment
类型时,它无法在其突变挂钩中读取getPost...因为没有引用Post
类型?
目前我使用refetchQueries
作为解决方法。我不喜欢对服务器进行额外的调用,但我流畅的大脑就是无法解决这个问题。感谢任何帮助。
哎呀,从来没有向查询传递过变量。
update(cache, result) {
const cacheData = cache.readQuery({
query: GET_POST,
variables: {
postID
}
});
}
我想知道以下问题的答案: 1)如果Ignite服务器重新启动,我需要重新启动客户端(web应用程序)。是否有任何方法可以在服务器重新启动时重新连接到服务器。我知道当服务器重新启动时,它分配了一个不同的ID,因此当前现有的连接变得过时。是否有方法克服这个问题,如果是的话,哪一个版本的Ignite支持这个功能。目前我使用1.7版本 3)如果我有一个大对象要缓存,我发现序列化和反序列化在Ignite中需
问题内容: 我们有一个gwt-client,它从我们的服务器接收很多数据。从逻辑上讲,我想在客户端缓存数据,以免服务器收到不必要的请求。 截止到今天,我已经让我的模型来处理数据缓存,但伸缩性不是很好。这也成为一个问题,因为我们团队中的不同开发人员都开发了自己的“缓存”功能,从而使项目充满重复性。 我正在考虑如何实现一个“单入口”来处理所有缓存,而使模型对如何处理缓存一无所知。 有没有人在GWT中进
我需要一些帮助来理解为什么在Eureka注册的服务会想要彼此通信,尽管没有实际运行。例如,我在尤里卡注册了服务A和服务B。如果我搞垮了服务B,那么即使服务A没有运行,它仍然会尝试与服务B进行30秒到3分钟的通信。这样做的目的是什么?有什么办法可以绕过它吗?谢谢你!
我有一个例子,其中我有一个,它在graphql中定义了不同的实现。我可能无法共享确切的代码。但情况似乎是这样的: 有一个查询返回或类型作为响应。 响应可能包含以下内容: 或 我在客户端使用Apollo Client 3来查询数据,并有如下片段: 我查询的数据为: 由于这是的情况,正如Apollo client 3文档中所定义的,我们需要使用,以便在这种情况下匹配片段。出于缓存目的,我在Memory
我想知道如何将缓存配置添加到Vertx http web客户端。 使用Apache http客户端,我可以轻松地设置setCacheConfig 有什么想法吗?
我正在尝试通过 tcp 连接远程执行程序,我想在客户端之间实时共享标准输出和标准输出 我有以下没有错误处理的测试服务器:p我知道,目前我无法执行带有参数的程序,但这很容易处理:) 你看,我尝试与 c.Write() 共享标准输出,但这不起作用。 我认为cmd.Stdin的另一个问题将与Stdout的问题相同。此时我没有实现任何标准函数。 有人能给我一个关于这个函数的提示或示例代码吗?