跳至主要内容

graphQLQueryEffect()

用于将 Recoil 原子GraphQL 查询 同步的底层 原子效应。它根据 GraphQL 查询的结果初始化原子并订阅本地变异或更新。

如果您希望订阅由服务器发起的更新,请考虑使用 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 环境或 EnvironmentKey,用于与使用 <RecoilRelayEnvironemnt> 提供的环境匹配。
  • query: 要查询的 GraphQL 查询。查询中支持 片段
  • variables: 提供给 GraphQL 查询的输入的 变量 对象。如果为 null,则跳过查询并使用默认原子值。
  • mapResponse: 回调函数,用于将查询响应映射到原子值。

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