使用钩子从React调用GraphQL突变的正确方法是通过使用Apollo Client来实现。Apollo Client是一个强大的GraphQL客户端,它可以与React无缝集成。
首先,确保你已经安装了Apollo Client。可以通过以下命令来安装:
npm install @apollo/client
接下来,你需要在你的React组件中导入必要的依赖项:
import { useMutation } from '@apollo/client';
import { gql } from '@apollo/client';
然后,定义你的GraphQL突变。你可以使用gql模板字符串来定义你的突变。例如:
const ADD_TODO = gql`
mutation AddTodo($title: String!) {
addTodo(title: $title) {
id
title
}
}
`;
在上面的例子中,我们定义了一个名为ADD_TODO的突变,它接受一个名为title的字符串参数,并返回一个包含id和title字段的对象。
接下来,使用useMutation钩子来调用突变。useMutation钩子返回一个包含两个元素的数组,第一个元素是一个函数,用于触发突变,第二个元素是一个包含加载状态和结果的对象。
const [addTodo, { loading, error }] = useMutation(ADD_TODO);
在上面的例子中,我们使用了解构赋值来获取addTodo函数和加载状态/错误信息。
最后,在你的组件中使用addTodo函数来触发突变。例如,当用户点击一个按钮时:
<button onClick={() => addTodo({ variables: { title: 'New Todo' } })}>
Add Todo
</button>
在上面的例子中,我们通过传递一个包含title参数的变量对象来调用addTodo函数。
至此,你已经了解了使用钩子从React调用GraphQL突变的正确方法。记得根据你的具体需求进行适当的调整和错误处理。如果你想了解更多关于Apollo Client的信息,可以访问腾讯云的Apollo Client产品介绍页面:Apollo Client产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云