【问题标题】:Where does `yarn run react` fit into the Relay workflow?`yarn run react` 在哪里适合 Relay 工作流程?
【发布时间】:2017-11-09 12:20:41
【问题描述】:

我正在尝试让 Relay 与我的 React Native 应用程序一起工作并与我的 GraphQL 服务器通信。我想我缺少一些理解。

我正在按照https://facebook.github.io/relay/docs/relay-modern.html 的说明进行操作

它详细介绍了设置中继和 babel 插件的 yarn 命令。我将“中继”脚本添加到我的 package.json 中,如下所示:

"relay": "relay-compiler --src ./App --schema ./App/Data/schema.graphql"

但是,当我运行yarn run relay 时,我得到了

Error: --schema path does not exist: /Users/user/dev/react-native-app/App/Data/schema.graphql.

是的。它不存在。这不是这个命令应该生成的吗?该文档页面没有解释这个命令输出什么,也没有解释它需要什么作为输入。我怎样才能让这个命令正常工作?当服务器上已经存在架构时,我真的必须手写吗?

【问题讨论】:

    标签: react-native graphql relay


    【解决方案1】:

    编辑,用于 php

    鉴于您在 PHP 服务器上生成架构,您可以通过创建 Node.js 脚本来生成 .graphql 文件:


    graphql-js的一般用法

    据我所知,您实际上需要用 GraphQL 语言打印您的架构。您可以查看 printSchema 以将其提供给中继编译器。

    printSchema 将进行JS Object -> Schema Language 转换。如果您已经有了 Schema Language 的模式,这就是您需要提供给中继编译器的内容。

    可能直接使用JS Object schema,但我不知道如何。

    完整设置的详细说明可以看我的另一个回答here。

    【讨论】:

    • 这个信息肯定有帮助,但是如何从我的服务器获取 GraphQL 表示法的架构? GraphiQL 可以做到这一点吗?
    • 在您的架构上调用 printSchema() 将以 GraphQL 表示法输出它;然后,您可以将其保存到文件中,例如命名为 schema.graphql
    • 您必须有权访问您的架构对象
    • 我在哪里打电话给printSchema()?在我的 PHP 服务器中?
    • 哦,我虽然你使用的是graphql-js。我正在编辑我的 php 答案。
    猜你喜欢
    • 2014-12-25
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2010-09-16
    相关资源
    最近更新 更多