跳至主要內容
版本: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[選用] 布林值。如果為 true,則會無條件發出查詢,無論任何已設定的回應快取狀態為何。
    • poll[選用] 數字。導致查詢依指定的間隔(以毫秒為單位)輪詢來即時更新。(此值將會傳遞至 setTimeout)。
    • liveConfigId[選用] 字串。導致查詢透過呼叫 GraphQLLiveQuery 來即時更新;它代表執行即時查詢時閘道的組態。
    • metadata[選用] 物件。使用者提供的中繼資料。
    • transactionId[選用] 字串。使用者提供的值,旨在用作執行作業之指定執行個體的唯一 ID。

類型 SelectorStoreUpdater

  • 具有簽名 (store: RecordSourceSelectorProxy, data) => void 的函式
  • 此介面可讓您命令式地直接在 Relay 存放區中讀取和寫入資料。這表示您可以完全控制如何更新存放區以回應訂閱酬載:您可以建立全新的記錄,或更新或刪除現有的記錄。用於讀取和寫入 Relay 存放區的完整 API 可於此處取得。

傳回類型

介面 Disposable

  • 具有下列索引鍵的物件
    • dispose() => void。處置資源。

行為

  • 命令式地建立訂閱。
  • 如需如何使用訂閱的更詳細說明,請參閱GraphQL 訂閱指南

這個頁面實用嗎?

請協助我們透過以下方式讓網站更上一層樓 回答幾個快速問題.