gpt4 book ai didi

relayjs - 如何使用 Relay 发送临时查询?

转载 作者:行者123 更新时间:2023-12-03 23:28:04 25 4
gpt4 key购买 nike

我是 Relay 的新手,仍在努力解决它。根据我的理解,Relay 将查询与组件联系起来。这样,您可以说需要从 GraphQL 服务器提供组件 x、y 和 z。据我了解,官方react-relay库将在适当的时间分派(dispatch)这些查询,可能是在组件即将呈现时。

这一切对我来说都是直接的用例,例如简单地显示数据列表。

但是,我对如何做感到困惑的是,如何调度可能不完全属于与组件相关联的事物类别的查询。一种查询,例如尝试获取用户身份验证 session token 或其他内容的查询。这是我目前的情况:我正在尝试创建一个从 GraphQL 获取 session token 的用户登录表单。我有一个参数化的 GraphQL 字段,它需要用户名和密码参数,如果它们有效,将返回一个 session token 。我只是不知道如何使用 Relay 来查询该 session token 。

我基本上只需要发送一个查询并处理响应(将该 session token 放入 React 应用程序状态)。

有任何想法吗?

最佳答案

Relay 的 API 主要专注于使获取组件数据变得容易,但 Relay 也支持 ad-hoc 查询。 API 相对较低级,具有用于获取和读取数据的不同功能。以下是如何获取临时查询和访问响应的示例:

// Create a query with values for any variables:
var query = Relay.createQuery(Relay.QL`query ... `, {var: 'value'});
// Fetch any fields that have not yet been cached:
Relay.Store.primeCache({query}, readyState => {
if (readyState.done) {
// When all data is ready, read the data from the cache:
var data = Relay.Store.readQuery(query)[0];
/* access fields on `data` */
}
});

如果数据不需要与 Relay 的缓存同步,您还可以使用纯网络请求(XHR、fetch 等)将纯字符串查询发送到您的 GraphQL 端点。

关于relayjs - 如何使用 Relay 发送临时查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com