GraphQL-Apollo客户端不使用挂钩?

时间:2019-08-27 01:07:09

标签: react-native aws-lambda graphql apollo-client

我正在尝试将Apollo GraphQL客户端用于React Native。但是,在我的应用程序的某些部分中,我需要对GraphQL数据进行更改,以使该接口不应向用户公开。

例如,在我的注册页面上,我想在数据库中创建一个用户,但是只有在我检查并验证了所有内容,创建了一个uuid等之后(才需要一个类)。如果呼叫成功,我想立即转到该应用程序的主页。如果没有,我想通知用户。

这样,我需要访问来执行GraphQL请求,不带钩子,而仅使用回调来更改UI。这可能吗,怎么办?

3 个答案:

答案 0 :(得分:1)

是的,有可能。

对graphql服务的调用仅期望主体中的querymutation的键值对与您要发送的查询/突变。

您可以通过一个简单的fetch请求(例如POSTcURL或通过邮递员来完成此操作,只要它的{{ 1}}请求。

另请参阅:https://blog.apollographql.com/4-simple-ways-to-call-a-graphql-api-a6807bcdb355

答案 1 :(得分:0)

文档在解释方面做得不好,但您可以简单地在 ApolloClient 对象上调用 querymutatehttps://www.apollographql.com/docs/react/api/core/ApolloClient/#apolloclient-functions

与其他答案相比,这可能比仅使用 fetch 进行原始调用要好,因为它使用与应用程序其余部分相同的缓存层,而不是绕过它。

答案 2 :(得分:0)

const apolloClient = new ApolloClient({
    uri: "/graphql",
    cache: new InMemoryCache()
})

const qr = gql`
    query {
       getCustomers() {
           name
       }
    }
`
const result = await apolloClient.query({
    query: qr ,
    variables: {}
})