graphQLSubscriptionEffect()
用於將 Recoil 原子 與 GraphQL 訂閱 同步的底層 原子效果。它會根據 GraphQL 訂閱的結果初始化一個原子,並訂閱來自伺服器的更新。
function graphQLSubscriptionEffect<
TVariables: Variables,
TData: $ReadOnly<{[string]: mixed}>,
T = TData,
TRawResponse = void,
>({
environment: IEnvironment | EnvironmentKey,
subscription: GraphQLSubscription<TVariables, TData, TRawResponse>,
variables: TVariables | null,
mapResponse: TData => T,
}): AtomEffect<T>
environment
:Relay 環境或EnvironmentKey
,以與透過<RecoilRelayEnvironemnt>
提供的環境相符。subscription
:要查詢的 GraphQL 訂閱。variables
:提供給 GraphQL 查詢當作輸入的 變數 物件。如果是null
,請略過查詢,並使用預設原子值。mapResponse
:傳回函式,用於將查詢回應對應到原子值。
const myAtom = atom({
key: 'MyQuery',
effects: [
graphQLSubscriptionEffect({
environment: myEnvironment,
query: graphql`
subscription MyEventSubscription($id: ID!) {
myevent(id: $id) {
id
name
}
}
`,
variables: {id: 123},
}),
],
});