问题标签 [graphql-js]
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.
reactjs - Relay.createContainer 是否有获取的回调?
似乎目前无法提供一个回调,Relay.createContainer
当获取初始数据和所有后续数据时将调用该回调。
在我的示例中,我需要知道在render
包装组件的函数之外最初获取的数据的值。
应该可以为在Relay.createContainer
获取数据时和包装组件更新之前调用的函数提供回调。
如果这已经是可能的,你能举个例子吗?
reactjs - 如何将 Relay 查询从 TypeScript 转换为 ES5?
我正在用 TypeScript 编写一个网络应用程序。该应用程序使用 Facebook 的 React 和 Relay。我的 TypeScript 源代码使用 TypeScript 编译器 TSC 编译成 ES6 代码。然后,使用 Babel 将 ES6 代码转换为 ES5 代码。为了让 Relay 在浏览器中工作,Babel 插件需要转换 Relay GraphQL 查询:https ://facebook.github.io/relay/docs/guides-babel-plugin.html 。问题是,因为 TSC 首先转换这些查询,Babel Relay 插件不再识别它们,所以它们不会被转换成浏览器可以理解的东西,所以浏览器会抛出一个错误:
未捕获的不变违规:RelayQL:运行时意外调用。要么未设置 Babel 转换,要么未能识别此调用站点。确保它被逐字用作
Relay.QL
.
我的 TypeScript 源代码:
...这被 TSC 编译成这样的东西:
... 而不是这样的(因为 Babel Relay 插件无法正常工作):
这是因为 Babel Relay 插件无法识别转换后的版本,因此它不会将查询转换为浏览器可以理解的内容。
如何使这项工作?
graphql - Graphql查询中的多个枚举
我想设置一个查询,为同一参数发送多个枚举。
看来这在 graphql-JS 中是不可能的,但我不确定。
relayjs - 将突变提交到 graphql-relay 突变WithClientMutationId 的语法
我使用 graphql-relay 定义了一个 GraphQL 突变,但是在弄清楚如何向它提交突变时遇到了问题。
这是相关的架构:
注册新用户并取回 userId 的 HTTP 调用应该是什么样的?
谢谢!
graphql - 连接是基于`array`的,这是设计中继服务器的设计风格指南吗?
在connection/arrayconnection.js
,似乎所有的功能都倾向于使用array
。
例如:offsetToCursor
是生成Cursor的唯一方法。这是否意味着它是我必须遵循的设计模式,或者暗示我应该在使用除array
.
顺便说一句:
作为 web 开发的新手,我有点困惑如何实现合格的中继服务器。
是否有一些设计 graphql-relay 服务器的指南,我应该一直遵循graphql-relay-js
Facebook 与中继服务器一起使用的数据库吗?mysql 还是?
我不确定在这里问这个是否合适,但是 graphql-relay-js 的主题很少出现在网络上。
非常感谢,原谅我的不礼貌。
附加问题:
也许我从developers.facebook.com/docs/graph-api 得到一些想法。
似乎应该为分页查找做一个数组样式缓存(对此不确定)。但是 graph-api 看起来与 graphql-relay-js 有点不同(graph-api 仍然是旧式 restful 风格的一部分吗?),
graph-api 和 graphql-relay-js 之间有什么关系?graphql-relay-js 是在 facebook 中设计 graphql 服务器的通用设计指南吗?非常感谢!请给我一些提示
sequelize.js - 我必须在带有 Sequelize 的 GraphQL 突变中返回什么?
我正在尝试实现一个在后端使用 Sequelize 的 GraphQL 服务器(在幕后使用 MSSQL)。而且我有一个按预期工作的查询(从单个 SQL 表中检索数据)。
但是后来我为同一个模式设置了一个突变,当我在 GraphiQL 中运行这个突变时,我发现虽然它确实执行了突变的解析函数中的东西(这是创建我的 Sequelize 模式的一个实例),但它确实不要把我的物品还给我。
现在,我认为这是因为我的 Sequelize.create
函数返回了一个承诺,而 resolve 无法处理?
这是我到目前为止所得到的:
我找不到任何清晰的解释或教程来告诉我如何构造当我异步执行某些操作时解析函数需要返回的内容。或者我只是不明白,这也很有可能。
reactjs - this.props.relay.setVariables 触发获取后加载指示器?
我使用react-router-relay
并且在我的一条路线中我有一个下拉菜单。
现在我从该下拉列表中选择一个不同的值 - 这将调用this.props.relay.setVariables
它将基于此变量获取一些数据。此数据将显示在当前路线内的图表组件中。
我如何提供回调或其他信息来知道当前组件现在正在获取数据/现在已完成获取数据?
我需要它才能在图表组件顶部显示加载指示器。
我想我不能用react-router-relay
这个,因为它只会让我显示一个加载指示器而不是我当前的路线 - 但我想在当前路线中显示加载指示器。
请帮忙。
relayjs - 片段组合在 Relay 中是如何工作的?
让我们使用 TODO 示例。在TodoList它(第 81 行)有一个片段组成为
现在如果我添加一个循环
在第 30 行执行renderTodos()函数,它将输出undefined
有趣的是,如果我们向片段中添加文本,如下所示
它实际上“声明”了两次文本(也在 Todo 组件中声明)并且循环完美运行。
我的问题是,为什么即使 Graphql 服务器返回了“属性”,也无法从组合中取回它们?
javascript - 将 GraphQL 模式从非 JS 服务器公开给 JS 客户端
我有一个用 Java 实现的 GraphQL 服务器和一个查询它的 JavaScript 客户端。我不喜欢的是客户端必须只知道架构并且不能从服务器获取它,而是动态地构建针对它的查询。
现在,我了解 GraphiQL 以某种方式做到了这一点,但我猜这是因为它的后端也是用 JavaScript 编写的,因此客户端和服务器都可以使用它。我的模式是用 Java 定义的,但可能有一种方法可以自动生成客户端可以使用的 JavaScript 表示。
这样的事情是否已经存在?
relayjs - 单个对象的多个突变
我尝试在一个组件上进行一个addColumn
和一个removeColumn
突变。Chart
但是当我打电话
我收到这个错误
我在这里做错了什么?
有了这些突变
和