跳至主要内容
版本:v18.0.0

requestSubscription

requestSubscription

用于建立 GraphQL 订阅的命令式 API。另请参阅 useSubscription API 和 更新数据指南.

import {graphql, requestSubscription} from 'react-relay';

const subscription = graphql`
subscription UserDataSubscription($input: InputData!) {
# ...
}
`;

function createSubscription(environment: IEnvironment): Disposable {
return requestSubscription(environment, {
subscription,
variables: {input: {userId: '4'}},
});
}

参数

  • environment:Relay 环境
  • configGraphQLSubscriptionConfig

类型 GraphQLSubscriptionConfig<TSubscriptionPayload>

  • 包含以下字段的对象
    • cacheConfig[可选] CacheConfig
    • subscriptionGraphQLTaggedNode。使用 graphql 模板字面量指定的 GraphQL 订阅
    • variables:传递给订阅的变量
    • onCompleted[可选] () => void。订阅建立时执行的可选回调
    • onError[可选] (Error) => {}。发生错误时执行的可选回调
    • onNext[可选] (TSubscriptionPayload) => {}。接收到新数据时执行的可选回调
    • updater[可选] SelectorStoreUpdater.

类型 CacheConfig

  • 包含以下字段的对象
    • force[可选] 布尔值。如果为真,则无论配置的响应缓存状态如何,都会无条件地发出查询。
    • poll[可选] 数字。通过以指定的毫秒间隔轮询来使查询实时更新。(此值将传递给 setTimeout)。
    • liveConfigId[可选] 字符串。通过调用 GraphQLLiveQuery 来使查询实时更新;它表示执行实时查询时网关的配置。
    • metadata[可选] 对象。用户提供的元数据。
    • transactionId[可选] 字符串。用户提供的 value,旨在用作执行操作的给定实例的唯一 ID。

类型 SelectorStoreUpdater

  • 具有签名 (store: RecordSourceSelectorProxy, data) => void 的函数
  • 此接口允许您命令式地直接将数据写入和读取到 Relay 存储中。这意味着您可以完全控制如何根据订阅有效负载更新存储:您可以创建全新的记录,或更新或删除现有记录。有关读取和写入 Relay 存储的完整 API,请访问 此处.

返回值类型

接口 Disposable

  • 包含以下键的对象
    • dispose() => void。释放资源。

行为

  • 命令式地建立订阅。
  • 有关如何使用订阅的更详细说明,请参阅 GraphQL 订阅指南.

此页面是否有用?

通过以下方式帮助我们改进网站 回答一些简短的问题.