问题标签 [apollo-boost]

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 回答
545 浏览

angular6 - Apollo-boost 缓存问题

我遇到了 apollo 客户端缓存的问题,我不确定我是否理解原因。我正在使用 apollo-boost 构建一个 angular 6 应用程序,一切运行良好。我现在有一个场景,其中我的 graphql 查询需要一个 id(用户的)和一个过滤器字符串(用于过滤后端的记录)。角度组件代码如下所示:

getAppointments函数如下所示:

graphql 查询:

主要问题

我有 4 种不同的可能过滤器值(全部、未确认、已确认、已付费)。当我使用每个过滤器值运行这些查询时,它按预期工作,并且我从 apollo 服务器获取正确的结果集。但是,一旦我两次运行相同的查询,我只会返回最后一次查询的结果,并且没有进行网络调用,大概是因为它使用的是缓存版本。

缓存不应该基于可变输入吗?当我第一次使用不同的变量运行时,它似乎运行良好,但是一旦一个被复制,我只会得到最后一次调用产生的任何东西。谢谢你的帮助!

这个 gif 演示了这个问题:

缓存未按预期工作

0 投票
0 回答
474 浏览

graphql - Apollo 客户端内省查询

在操场上工作...

我正在尝试查询以下枚举值:

当我用操场测试查询时,它可以工作。我收到以下枚举值列表ActivityType

不适用于 Apollo 客户端...

当我使用客户端运行以下代码时,我收到了第一个查询的预期结果,但不是第二个:

结果

您必须与客户端一起实现一些特殊的功能以允许内省查询吗?

0 投票
3 回答
4090 浏览

reactjs - Apollo boost - 查询中的 __typename 防止新的突变

我的流星/反应/阿波罗(带提升)项目有问题。当我从服务器查询数据时,它会将 __typename 添加到查询中的每个对象和子对象中,但在我的情况下,它会产生一个主要问题,因为我通常会重用这些数据以将它们发送到其他突变。现在另一个突变告诉我有一个错误,因为 __typename 字段未在我的 graphql 模式中定义。

我试图通过将 addTypename: false 字段添加到我的 apollo 客户端来修复,但它没有改变任何东西(注意我正在使用 apollo boost,这可能是它无法正常工作的原因):

此外,即使它有效,它似乎也不是很优化。在我看来,在查询结果中添加了一个字段,我很惊讶没有在网上找到任何明确的解决方案。一些建议的解决方案:

  • 在客户端手动过滤
  • 将中间件添加到 apollo
  • 将 __typename 字段添加到我的所有模式中......

但它们似乎都不适合阿波罗计划带来的“简单”查询。我希望提供一个更简单、更合乎逻辑的解决方案,但到目前为止,找不到任何解决方案。

0 投票
1 回答
3323 浏览

reactjs - [GraphQL 错误]:消息:所需类型“MongoID!”的变量“$id” 没有提供

我有以下查询:

然后我将查询绑定到我的“React.Component”

我确定 props.ID 等同于 MongoDB ID。我也确定正在读取来自父组件的道具。

上面的代码导致以下错误:

[GraphQL 错误]:消息:所需类型“MongoID!”的变量“$id” 未提供。,位置:[object Object],路径:未定义

控制台错误

任何反馈将不胜感激。谢谢!

0 投票
1 回答
799 浏览

heroku - 向我的 graphql API 发起查询时出现网络错误

这是我在进行查询时收到的错误消息:

[Network error]: ServerParseError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

当将我的 ApolloClient 的 uri 设置为http://localhost:4000/graphql并在本地运行服务器时,查询在本地运行良好。

但是,如果我将服务器部署到 heroku,然后将客户端的 uri 设置为https://my-app.herokuapp.com/它不起作用,我会收到上面的错误消息。网络选项卡向我的 heroku 应用程序的 POST 请求显示 404,“无法 POST”

heroku 日志在推送时没有显示错误。

知道我在这里缺少什么吗?我检查了所有我能找到的教程,我没有发现任何明显的缺失。

这是我的客户要求:

const client = new ApolloClient({ uri: 'https://my-app.herokuapp.com/', headers: { authorization: "Bearer API_KEY", 'content-type': 'application/json' } });

0 投票
1 回答
1589 浏览

reactjs - 与 GraphQL 客户端反应

ReactGraphQL clientslike一起使用Apollo Client是个好主意吗?react我可以使用和 new获得相同的结果Context API

基本上我可以使用GraphQL APIs usingaxios或任何其他类似的库。对于状态管理,我可以使用 react 的 new Context API,这非常简单。

是否还有任何优势Apollo ClientApollo client当我没有它也能达到同样的效果时,为什么我真的会去。它将帮助我减小bundle尺寸。

0 投票
1 回答
152 浏览

create-react-app - 未定义具有 GraphQL 和 React Require 的节点

我正在开发一个带有 GraphQL 后端的节点,并且刚刚开始使用create-react-app.

在我添加以下代码之前一切顺利:

Apollo 代码将它破坏到它告诉我需要未定义的地方。我理解错误与在浏览器端使用 require 语句有关,而我不是。

0 投票
1 回答
32 浏览

reactjs - 使用 ApolloClient 时无法访问 this.props

我正在使用 apollo-boost 并且我创建了一个 ApolloClient 并且我想在运行突变后进行一些重定向但我无法访问道具

index.js

路由组件

添加产品组件

控制台中的 this.props 显示{}

为了缓解这种情况,我还尝试使用 history 包,它更改了 url,但重定向不起作用

我可以使用状态进行重定向,但我宁愿使用历史道具而不是状态。

对此的任何建议将不胜感激。

0 投票
0 回答
878 浏览

graphql-js - 如何使用来自 apollo-boost 的 gql 返回不同的数据

我正在使用一个React组件,该组件是TypeScript在我使用库中查询一些数据的地方gql实现的apollo-boost。第一次使用所以知识很少。

如何从此查询中获取不同的国家/地区?尝试使用distinct/ distinct_on。他们都没有工作。

0 投票
0 回答
450 浏览

node.js - Vue Apollo:如何通过 GraphQL 在 VueJS 前端显示 Mysql 数据

我是 VueJS 和 NodeJS 开发的新开发人员。

我在前端部分使用 apollo-boost、graphql、vue-apollo,在后端部分使用 express-graphql、express、graphql、knex、MySQL。

运行后端部分后,我得到如下正确响应:输入参数

输出:

所以我认为代码在服务器端是可以的。现在我想在 vuejs 中显示这些数据。我实现的代码如下:

我没有收到任何错误,但没有任何结果显示在前端部分。请让我知道做错了什么?