是的,事实上我有可能留下可用于查询和变异的示例类。
首先,配置您的应用程序以使用 graphQl。
使用提供程序包装您的应用。
import { client } from './config/connection';
import { ApolloProvider } from '@apollo/client';
<ApolloProvider client={client}>
<App/>
</ApolloProvider>
这是我们想要的客户
import { ApolloClient, ApolloLink, InMemoryCache } from '@apollo/client';
export const client = new ApolloClient({
cache: new InMemoryCache(),
uri: 'http://localhost:4000/graphql',
});
Operations.js(包含查询和突变 gql)
import { gql } from '@apollo/client';
export const Query_SignIn = gql`
query Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
name
}
}
`;
export const Mutate_SignUp = gql`
mutation SignUp($name: String!, $email: String!, $password: String!, $passwordConfirmation: String!) {
signUp(name: $name, email: $email, password: $password, passwordConfirmation: $passwordConfirmation) {
name
}
}
`;
使用查询而不是 useQuery 挂钩的类
import { Query_SignIn } from '../../../operations';
class login {
constructor(client) {
this._client = client;
}
async signIn(email, password) {
const response = await this._client.query({
query: Query_SignIn,
variables: {
email,
password,
},
});
return response;
}
}
export default login;
使用 mutate 而不是 useMutation 的类
import { Mutate_SignUp } from '../../../operations';
class register {
constructor(client) {
this._client = client;
}
async signUp(accountType, name, email, password, passwordConfirmation) {
const response = await this._client.mutate({
mutation: Mutate_SignUp,
variables: {
name,
email,
password,
passwordConfirmation,
},
});
return response;
}
}
export default register;