【问题标题】:Is there way to use Relay without GraphQL?有没有办法在没有 GraphQL 的情况下使用 Relay?
【发布时间】:2016-01-19 00:31:04
【问题描述】:

我正在我的 React 应用程序中尝试 Relay,它默认使用 GraphQL。它看起来像这样(Score 是一些 React.js 组件):

Score = Relay.createContainer(Score, {
    fragments: {
        score: () => Relay.QL`
            fragment on Score {
                initials,
                score,
            }
        `,
    },
});

问题是:我可以使用自定义 API 函数将数据返回到片段中吗?像这样:

Score = Relay.createContainer(Score, {
    fragments: {
        score: myCustomFunction(), // It will return a dataset.
    },
});

【问题讨论】:

    标签: reactjs graphql relayjs


    【解决方案1】:

    不,还没有。正在讨论使用“本地”数据扩充服务器架构的支持in this GitHub issue

    与此同时,您有两种选择:

    • 在 GraphQL 服务器上找到分数计算并通过模式访问它,就像访问任何其他字段一样(请注意,模式中的字段可以是任意计算的产物,因此您可以执行“计算字段”并且不受限制到从二级商店获取普通数据)。
    • 在客户端定位数据并通过 GraphQL 之外的侧通道访问它;例如,您可以将它放在 Flux 商店或其他一些辅助模块中。

    【讨论】:

    • 感谢您的回答!我认为有太多的复杂性和多余的灵活性,所以我选择了另一种方式:自己创建一个简单的 React 组件包装器。
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2018-11-10
    相关资源
    最近更新 更多