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},
}),
],
});