跳至主要內容

graphQLQueryEffect()

用於將 Recoil atomGraphQL 查詢 同步的底層 atom 效果。它會根據 GraphQL 查詢結果初始化 atom,並訂閱本機突變或更新。

如果您想要訂閱由伺服器發起的更新,請考慮使用 graphQLSubscriptionEffect() 和 GraphQL 訂閱。


function graphQLQueryEffect<
TVariables: Variables,
TData: $ReadOnly<{[string]: mixed}>,
T = TData,
TRawResponse = void,
>({
environment: IEnvironment | EnvironmentKey,
query: Query<TVariables, TData, TRawResponse>,
variables: TVariables | null,
mapResponse: TData => T,
}): AtomEffect<T>
  • environment: Relay Environment 或 EnvironmentKey,以與透過 <RecoilRelayEnvironemnt> 提供的環境相符。
  • query:要查詢的 GraphQL 查詢。查詢中支援 片段
  • variables:提供給 GraphQL 查詢作為輸入的 變數 物件。如果是 null,則略過查詢並使用預設 atom 值。
  • mapResponse:回呼函式,用於將查詢回應對應至 atom 值。

const myAtom = atom({
key: 'MyQuery',
effects: [
graphQLQueryEffect({
environment: myEnvironment,
query: graphql`
query MyEventQuery($id: ID!) {
myevent(id: $id) {
id
name
}
}
`,
variables: {id: 123},
}),
],
});