问题标签 [apollo-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
267 浏览

reactjs - Apollo Client/GraphQL 实时更新 UI

我有一个表单,我正在尝试创建一种用户体验,当您创建新记录时,它将为其创建一个 id 并实时写入数据库,并在 UI 中反映这些更改。或者您正在编辑一条记录,它已经被赋予了一个 id,所以它知道要更新记录。

我有一个突变可以处理两种情况:

没有传递给突变的 ID,因此它创建了一个新的。

它传递了一个 ID ,因此它更新了该对象。

该组件使用 compose 来包装 2 case 突变,以及对该对象的查询。我尝试附加一个 fetchPolicy: 'cache-and-network',但这不起作用。

预期结果:尝试取回组件操作中生成的 id

实际结果:重新渲染组件时ID显示为null,仅在页面刷新时更新

如何重现该问题:我有一个突变,如果它没有传递以前的 id,它会为一个对象创建一个新的 id。或者,如果它传递了一个 id,那么它将更新该对象。

0 投票
1 回答
2223 浏览

reactjs - Apollo fetchMore 更新的 props 不重新渲染组件

我有一组来自 graphql 查询的“帖子”,我正在尝试使用apollo docs中描述的 offset + limit 进行分页。当前按下“loadMore”会更新查询,结果fetchMoreResult是正确的。此外,连接newResults时会正确显示。也许我做出了一个不正确的假设,但我理解文档的方式是新结果posts将自动传递给我TestComponent并重新渲染。这是不正确的吗?

编辑(2017 年 4 月 11 日) 我未能解释我的查询GetPosts包含联合类型,这似乎可能是问题,因为如果我删除它们,更新会按预期工作。我已经打开了一个包问题,希望更清楚:https ://github.com/apollographql/react-apollo/issues/602

0 投票
1 回答
940 浏览

reactjs - 使用 graphql 反应组件默认道具

我正在尝试从后端 graphql 服务获取记录并使用 Array.map 函数呈现它们。不幸的是,在它们被加载之前我得到了错误,因为它们是未定义的。我试图在组件上设置默认道具,但它不起作用。我是否必须检查是否所有内容都已加载,或者是否有特定方法将默认值注入这些道具。我的代码现在看起来像这样

0 投票
1 回答
708 浏览

angular - Apollo Angular2 客户端处理承诺

我有以下功能是服务提供者。我想将后端和 UI 部分分开,因此我使用提供程序来获取所有数据。

}

在实际页面中,我有以下代码来获取数据。

问题是远程调用完成较晚,但视图试图显示数据。我收到以下错误。

0 投票
2 回答
299 浏览

reactjs - 阿波罗突变未出现在道具中

这是我的组件:

这似乎是一个非常简单的例子,但是当我运行它时,道具是空的:

0 投票
0 回答
369 浏览

reactjs - 从 getDataFromTree 中的 store 获取初始状态时我们应该如何处理错误

我想要做什么

使用来自我们的 graphql 服务器的错误数据渲染页面服务器端。

语境

我们的 GraphQL 服务器与多个 API 对话并返回由 Apollo UI 处理的 graphQL 响应。

某些 GraphQL 错误不被认为是严重的,我们仍然希望使用它来呈现页面。例如

通过我们从 Apollo 获得的上述响应,我们仍然希望使用thing. 看看getDataFromTree 这里的实现,任何错误都会被抛出,而没有其余的数据。

我们计划如何处理我们的错误

以下是我们计划如何处理代码的片段:

如果有办法解决这个问题,或者我是否遗漏了什么,请告诉我。

额外问题:

  1. 甚至应该getDataFromTree抛出错误?感觉责任应该在消费者身上。
0 投票
1 回答
309 浏览

redux - 阿波罗单一事实来源

redux 具有“单一事实来源”的原则,我很难弄清楚来自 GQL 的轮询片段将如何继续保持这一原则。

TL;DR : apollo 是否对整个应用程序或每个 apollo 容器的实体进行规范化?

Apollo 有自己的 redux 商店。通过架构图,我看到在将数据应用到 redux 之前有一个规范化阶段。

我的问题是:假设我有一个帖子模式和一个用户模式。轮询帖子时,我会提取帖子信息,以及作者(用户模式)名称和个人资料图片。我有一个带有阿波罗的帖子容器。所以我阿波罗商店现在有这个状态:

但是当用户 - James 将他的名字更改为 Julian 和另一个组件时会发生什么,经常更新的聊天菜单组件将具有用户 ID:32 和不同的名字 Julian。
帖子容器也会因此而更新吗?还是会继续显示过时的数据?

0 投票
1 回答
365 浏览

offline - Apollo 客户端递归突变

apollo-client 可以使用以下示例吗?

例如,一个简单的 ToDo 应用程序和糟糕的互联网连接:

  1. 没有网络连接
  2. (1.mutation)创建一个新的todo
  3. (1. mutation => 乐观更新) 显示新的 todo (local tmp-ID)
  4. (2. 突变)检查新的待办事项是否已完成(使用 tmp-ID)
  5. (2. 变异 => 乐观更新) 将待办事项显示为已完成
  6. 现在连接到服务器
  7. ???

Apollo 客户端可以将 tmp-ID 替换为正确的待办事项,或者我该如何手动完成?

0 投票
1 回答
1250 浏览

angular - 可以在 Observable 订阅方法中包含逻辑吗?

我正在观看@john_lindquist 的关于 RxJS 的蛋头教程,他强调了不包括业务逻辑而不是.subscribe()方法的观点。

因此,我正在创建一个 canActivate 防护来防止用户进入无效路由,并且我不禁将逻辑构建到 subscribe 方法中。有一个更好的方法吗?

0 投票
0 回答
63 浏览

react-native - Apollo-客户 | 使用某些字段时没有查询结果

我正在尝试在我的 react-native 应用程序中使用 apollo-client,但由于某种原因,我只能在使用某些字段时从查询中获得结果。

这是我的第一个查询:

在 RN 和 GraphiQL 中完美地工作,但只要我添加或使用其他字段,title我就不会从 RN 中的查询中得到任何结果。它在 GraphiQL 中运行良好,完全没有错误。

例如 :

这是我的事件类型: