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 环境config
:GraphQLSubscriptionConfig
类型 GraphQLSubscriptionConfig<TSubscriptionPayload>
- 包含以下字段的对象
cacheConfig
:[可选]CacheConfig
subscription
:GraphQLTaggedNode
。使用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
,用于清除订阅。
接口 Disposable
- 包含以下键的对象
dispose
:() => void
。释放资源。
行为
- 命令式地建立订阅。
- 有关如何使用订阅的更详细说明,请参阅 GraphQL 订阅指南.
此页面是否有用?
通过以下方式帮助我们改进网站 回答一些简短的问题.