我正在使用 react、nextjs 和 wpgraphql 构建一个无头 wordpress 网站。我正在尝试创建一个突变来注册用户,但在提交表单后出现以下错误:
Error: GraphQL error: Unknown argument "username" on field "registerUser" of type "RootMutation".
GraphQL error: Unknown argument "email" on field "registerUser" of type "RootMutation".
GraphQL error: Unknown argument "clientMutationId" on field "registerUser" of type "RootMutation".
GraphQL error: Field "registerUser" argument "input" of type "RegisterUserInput!" is required but not provided.
当我使用 GraphiQL 在 wordpress 中直接测试突变时,一切都按预期工作:
mutation registerUser {
registerUser(input: {username: "new_user", clientMutationId: "39slh", email: "test@test.com"}) {
user {
id
name
}
}
}
这是我正在使用的代码:
import React, { useState } from 'react';
import { useMutation } from '@apollo/react-hooks';
import { gql } from 'apollo-boost';
import Layout from '../components/Layout';
import withData from '../lib/apollo';
const CREATE_USER = gql`
mutation registerUser {
registerUser(input: {$name, $mutation, $email}) {
user {
id
name
}
}
}`;
const Login = () => {
const [email, setEmail] = useState('');
const [name, setName] = useState('');
const mutation = 'reslkj3sd';
const [createUser, { loading, error }] = useMutation(CREATE_USER);
const updateEmail = (value) => {
setEmail(value);
};
const updateName = (value) => {
setName(value);
};
const handleCreateUser = (event) => {
event.preventDefault();
createUser({ variables: { name, mutation, email } });
};
return (
<Layout>
<form onSubmit={handleCreateUser}>
<input type="email" value={email} onChange={(e) => { updateEmail(e.target.value) }} />
<input type="text" value={name} onChange={(e) => { updateName(e.target.value) }} />
<input type="submit"></input>
{error && <p>{error.message}</p>}
</form>
</Layout>
);
};
export default withData(Login);
我很感激我能得到的任何帮助来让它工作。