在使用 useMutation 时,需要手动添加 data 字段的返回值。具体的方法是在 useMutation 的返回值中使用 onCompleted 回调函数,将返回的结果设置到组件的状态中。示例代码如下:
import { useMutation } from '@apollo/client';
import { gql } from '@apollo/client/core';
import { useState } from 'react';
const CREATE_USER = gql`
mutation CreateUser($input: UserInput!) {
createUser(input: $input) {
id
username
}
}
`;
function NewUserForm() {
const [username, setUsername] = useState('');
const [createUserMutation, { loading }] = useMutation(CREATE_USER, {
onCompleted: (data) => {
setUserCreated(data.createUser);
},
});
const [userCreated, setUserCreated] = useState(null);
const createUser = () => {
createUserMutation({ variables: { input: { username: username } } });
};
return (
setUsername(e.target.value)} />
{loading && Creating user...}
{userCreated && User created with id: {userCreated.id}}
);
}
export default NewUserForm;