有没有办法在没有 GraphQL 的情况下使用 Relay?
Is there way to use Relay without GraphQL?
我正在我的 React 应用程序中尝试 Relay,它默认使用 GraphQL。它看起来像这样(Score
是一些 React.js 组件):
Score = Relay.createContainer(Score, {
fragments: {
score: () => Relay.QL`
fragment on Score {
initials,
score,
}
`,
},
});
问题是:我可以使用自定义 API 函数将数据 return 分成片段吗?像这样:
Score = Relay.createContainer(Score, {
fragments: {
score: myCustomFunction(), // It will return a dataset.
},
});
不,还没有。正在讨论使用 "local" 数据扩充服务器模式的支持 in this GitHub issue。
同时,您有两个选择:
- 在 GraphQL 服务器上找到分数计算并通过模式访问它,就像访问任何其他字段一样(请注意,模式中的字段可以是任意计算的产物,因此您可以 "computed fields" 和不限于从二级商店获取普通数据)。
- 在客户端定位数据并通过 GraphQL 之外的侧通道访问它;例如,您可以将它放在 Flux 存储和/或其他一些辅助模块中。
我正在我的 React 应用程序中尝试 Relay,它默认使用 GraphQL。它看起来像这样(Score
是一些 React.js 组件):
Score = Relay.createContainer(Score, {
fragments: {
score: () => Relay.QL`
fragment on Score {
initials,
score,
}
`,
},
});
问题是:我可以使用自定义 API 函数将数据 return 分成片段吗?像这样:
Score = Relay.createContainer(Score, {
fragments: {
score: myCustomFunction(), // It will return a dataset.
},
});
不,还没有。正在讨论使用 "local" 数据扩充服务器模式的支持 in this GitHub issue。
同时,您有两个选择:
- 在 GraphQL 服务器上找到分数计算并通过模式访问它,就像访问任何其他字段一样(请注意,模式中的字段可以是任意计算的产物,因此您可以 "computed fields" 和不限于从二级商店获取普通数据)。
- 在客户端定位数据并通过 GraphQL 之外的侧通道访问它;例如,您可以将它放在 Flux 存储和/或其他一些辅助模块中。