commitMutation
commitMutation
命令式地執行一個變更 (mutation)。
另請參閱 useMutation
API 和 資料更新指南。
import type {FeedbackLikeMutation} from 'FeedbackLikeMutation.graphql';
const React = require('React');
const {graphql, commitMutation} = require('react-relay');
function likeFeedback(environment: IEnvironment): Disposable {
return commitMutation<FeedbackLikeMutation>(environment, {
mutation: graphql`
mutation FeedbackLikeMutation($input: FeedbackLikeData!) {
feedback_like(data: $input) {
feedback {
id
viewer_does_like
like_count
}
}
}
`,
variables: {
input: {
id: '123',
},
},
});
}
引數
environment
:IEnvironment
。一個 Relay 環境。config
:MutationConfig<TMutation>
。
型別 MutationConfig<TMutationConfig: MutationParameters>
- 具有以下欄位的物件
cacheConfig
:[可選]CacheConfig
mutation
:GraphQLTaggedNode
。使用 GraphQL 字面值指定的變更 (mutation)onError
:[可選](Error) => void
。如果變更 (mutation) 導致錯誤,則執行可選的回呼函數。onCompleted
:[可選]($ElementType<TMutationConfig, 'response'>) => void
。變更 (mutation) 完成時執行的可選回呼函數。- 傳遞給
onCompleted
的值是從 store 讀取的變更 (mutation) 片段,在套用更新程式和宣告式變更 (mutation) 指令之後。這表示不會讀取未遮罩片段中的資料,且刪除的記錄(例如,透過@deleteRecord
刪除)也可能為 null。
- 傳遞給
onUnsubscribe
:[可選]() => void
。當取消訂閱變更 (mutation) 時執行的可選回呼函數,當返回的Disposable
被處置時,就會發生取消訂閱。optimisticResponse
:[可選] 物件,其型別與變更 (mutation) 的原始回應型別相符。如果您正在使用此欄位,請確保使用@raw_response_type
修飾您的變更 (mutation)。optimisticUpdater
:[可選]SelectorStoreUpdater
。在commitMutation
被呼叫時執行、將optimisticResponse
正規化到 store 之後執行的回呼函數。updater
:[可選]SelectorStoreUpdater
。在收到 payload 時執行、將 payload 寫入 store 之後執行的回呼函數。uploadables
:[可選]UploadableMap
。可選的上傳映射。variables
:$ElementType<TMutationConfig, 'variables'>
。傳遞給變更 (mutation) 的變數。
型別 CacheConfig
- 具有以下欄位的物件
force
:[可選] 布林值。如果為 true,則會無條件發出查詢,而不考慮任何已配置的回應快取狀態。poll
:[可選] 數字。會造成查詢以指定的間隔(以毫秒為單位)輪詢來即時更新。(此值將傳遞給setTimeout
)。liveConfigId
:[可選] 字串。會透過呼叫 GraphQLLiveQuery 造成查詢即時更新;它代表進行即時查詢時閘道的配置。metadata
:[可選] 物件。使用者提供的中繼資料。transactionId
:[可選] 字串。使用者提供的值,旨在用作執行操作的特定實例的唯一 ID。
型別 SelectorStoreUpdater
- 簽名為
(store: RecordSourceSelectorProxy, data) => void
的函式 - 此介面可讓您命令式地直接從 Relay store 寫入和讀取資料。這表示您可以完全控制如何更新 store 以回應訂閱 payload:您可以建立全新的記錄,或更新或刪除現有的記錄。用於讀取和寫入 Relay store 的完整 API 可在此處找到。
型別 UploadableMap
型別 MutationParameters
- 具有以下欄位的物件
response
:物件variables
:物件rawResponse
:可選的物件
返回值
Disposable
,它- 如果在請求完成之前呼叫,將取消還原任何樂觀更新,並阻止執行
onComplete
和onError
回呼函數。它不一定會取消任何網路請求。將導致呼叫onUnsubscribe
回呼函數。 - 如果在初始請求完成之後呼叫,則不會執行任何操作。
- 如果在請求完成之前呼叫,將取消還原任何樂觀更新,並阻止執行
介面 Disposable
- 具有以下鍵值的物件
dispose
:() => void
。處置資源。
這個頁面有用嗎?