用于使用 **GraphQL** 的 recoil-relay
库的初始开源版本!
该库帮助 Recoil 使用 GraphQL 和 Relay 库执行类型安全且高效的查询。它提供选择器,可以轻松地使用 GraphQL 进行查询。这些查询与 Recoil 数据流图同步,因此下游选择器可以从它们中派生状态,它们可以依赖于上游 Recoil 状态,并且它们会自动订阅 Relay 中图的任何更改。一切都保持自动同步。
示例
GraphQL 查询就像定义一个 GraphQL 选择器 一样简单
const userNameQuery = graphQLSelector({
key: 'UserName',
environment: myEnvironment,
query: graphql`
query UserQuery($id: ID!) {
user(id: $id) {
name
}
}
`,
variables: ({get}) => ({id: get(currentIDAtom)}),
mapResponse: data => data.user?.name,
});
然后像任何其他 Recoil 选择器 一样使用它
function MyComponent() {
const userName = useRecoilValue(userNameQuery);
return <span>{userName}</span>;
}