问题标签 [apollostack]

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 投票
2 回答
826 浏览

graphql - 如何级联 GraphQL?

我目前正在使用“客户端 GraphQL 服务器”将 RESTful 端点包装到 GraphQL 端点。

但是如果服务器端也是一个 GraphQL 端点呢?如何通过轻量级的方式在 GraphQL 服务器中排队另一个 GraphQL 服务器?

或者更一般地说,如果我有 GraphQL 服务器“A”和“B”,提供微服务,那么我使用 GraphQL 服务器“C”来集成“A”和“B”。我应该使用某种使用 apollo-client 的“服务器端客户端”来在“C”中排队“A”和“B”吗?

0 投票
1 回答
3061 浏览

graphql - 在 GraphQL/Apollo 中使用带有变异查询的 Promise?

我在http://localhost:3010/graphiql中运行以下突变查询:

突变

查询变量

我的解析器中有这个突变代码:

它成功地在我的 postgres 数据库中创建了一条新记录。在console.log(comment)最后一个then块(检查点 #3)中记录以下内容:

但是 GraphIQL 给了我以下回应:

我需要在最后一个.then区块中做一些不同的事情吗?

0 投票
1 回答
143 浏览

graphql - React-Apollo 不连贯数据

我一直在用 React 尝试 Apollo,但目前正面临一个问题。

我有一个产品属于许多类别的基本数据

正如预期的那样,这会返回这样的东西

这是我的反应组件

但是一旦它在反应组件中传递,我发现它是(来自console.log(this.props.data))

产品名称不知何故采用第一类名称?我猜id也会。解决方法是更改​​模式中字段的名称,但在我看来,它不应该真的这样做。

这是一个已知问题还是我是唯一一个遇到这个问题的人?任何建议的解决方案?

0 投票
2 回答
1213 浏览

meteor - 我可以将 wix/react-native-navigation 创建的根组件包装在 ApolloProvider 组件中吗

我将 Meteor 的Apollo Client 与wix/react-native-navigation结合使用,我想知道是否可以将由 ApolloProvider 创建的根组件包装Navigation.startSingleScreenAppApolloProvider组件中?我尝试将其放入Navigation.startSingleScreenApp另一个组件的渲染方法中并将其封闭,ApolloProvider但没有奏效。有没有人有过将这两个一起使用的经验?

我想知道注册的每个组件是否Navigation.registerComponent都有自己单独的根组件,如果是这种情况,我必须附上我注册的每个组件ApolloProvider,可能使用更高阶的组件?我将不胜感激任何人可以提供的任何想法或示例代码!提前致谢。

0 投票
1 回答
898 浏览

graphql - Apollo 查询在 GraphIQL 中有效,但在调用 graphql() 时无效?

我有一个在 localhost:3010/graphiql 中正常工作的 Apollo 查询:

询问

查询变量

这是我通过调用 graphql() 运行查询的代码:

Chrome 网络选项卡显示了预期的请求负载:

operationName:"getIMs" query: "query getIMs($fromID: String!, $toID: String!) {↵ instant_message(fromID: $fromID, toID: $toID) {↵<br> fromID↵ toID↵ msgText↵ __typename↵ }↵}↵" 变量:{fromID: "DsmkoaYPeAumREsqC", toID: "572bddac4ecbbac0ffe37fdd"} fromID:"DsmkoaYPeAumREsqC" toID:"572bddac4ecbbac0ffe37fdd"

但是该data对象返回了 ApolloError:

“网络错误:位置 0 的 JSON 中的意外令牌 <”

我该如何纠正?

更新

这是“网络”选项卡的屏幕截图:

在此处输入图像描述

0 投票
1 回答
42 浏览

javascript - 监听相同 redux 状态的组件级别

我的情况如下:

我的 redux 状态中有 1 个字段,只不过是以下类型的对象:{String, [{String, Float}]}. 在我的状态下,这个字段被 2 个组件使用(他们使用 GraphQLString作为变量进行查询)。

两个组件都通过该connect方法连接(使用装饰器语法)。

没有什么特别的,因为这适用于其他所有Componentrender然而,当我在它们的方法中记录状态时在同一级别调用这些组件时:

Component1按原样记录状态,记录Component2初始状态。当我将组件切换到位时:

相反的情况发生:Component2记录正确的状态,Component1没有。

当我在彼此内部调用任一组件时(其中Component1调用Component2作为其渲染的一部分),一切都很好。

我不确定这里发生了什么,也找不到任何文档说明您不应调用 2 个组件在同一位置侦听同一状态。

希望有人可以帮助我了解发生了什么

0 投票
2 回答
3218 浏览

graphql - After a mutation, how do I update the affected data across views?

enter image description here

I have both the getMovies query and addMovie mutation working. When addMovie happens though, I'm wondering how to best update the list of movies in "Edit Movies" and "My Profile" to reflect the changes. I just need a general/high-level overview, or even just the name of a concept if it's simple, on how to make this happen.

My initial thought was just to hold all of the movies in my Redux store. When the mutation finishes, it should return the newly added movie, which I can concatenate to the movies of my store.

After "Add Movie", it would pop back to the "Edit Movies" screen where you should be able to see the newly added movie, then if you go back to "My Profile", it'd be there too.

Is there a better way to do this than holding it all in my own Redux store? Is there any Apollo magic I don't know about that could possibly handle this update for me?


EDIT: I discovered the idea of updateQueries: http://dev.apollodata.com/react/cache-updates.html#updateQueries I think this is what I want (please let me know if this is not the right approach). This seems better than the traditional way of using my own Redux store.

#xA;

After addMovie mutation, this properly updates the view in "My Profile" because it uses the getMovies query (woah)! I'm then passing these movies as props into "Edit Movies", so how do I update it there as well? Should I just have them both use the getMovies query? Is there a way to pull the new result of getMovies out of the store, so I can reuse it on "Edit Movies" without doing the query again?


EDIT2: Wrapping MyProfile and EditMovies both with getMovies query container seems to work fine. After addMovie, it's updated in both places due to updateQueries on getMovies. It's fast too. I think it's being cached?

It all works, so I guess this just becomes a question of: Was this the best approach?

0 投票
1 回答
86 浏览

graphql - Apollo GitHunt-React:updateCommentsQuery?

我正在使用来自 GitHunt-React 和 GitHunt-API 的示例开发 Apollo pub-sub。当新记录添加到它正在监视的数据库时,我的订阅解析器成功触发。现在我需要将我的客户端连接到 pub-sub 解析器发送的结果。

在 GitHunt-React、CommentsPage.js 中,我看到了这个:

updateCommentsQuery 在哪里声明,它是如何传递给订阅的?

0 投票
1 回答
401 浏览

typescript - Graphql 从一组多个查询中运行某个查询 - ApolloClient

我想将我的查询存储在一个外部文件中,比如说:

是否可以以某种方式将整个文件加载到单个字符串中,将该字符串传递给 ApolloClient 并选择我要执行的查询,例如:

是否可以与任何其他客户一起执行此操作?不需要阿波罗。

0 投票
1 回答
460 浏览

apollostack - Apollo Subscription 似乎没有在 Mutation 上被调用

Apollo 的新手,所以我决定采用我发现的最简单的例子,并尝试以稍微不同的方式来工作。我的代码可以在这里找到

我遇到的问题是,当我调用 Mutation 时,似乎没有调用 Subscription createTask()。突变和订阅在 schema.graphql 中定义为:

在 resolvers.js 中为:

我期望发生的是,每次在客户端运行以下命令时,我都会在服务器中获得一个 console.log:

但什么也没有发生。我错过了什么?