[GraphQL 错误]:消息:“rootMutation”类型的字段“createUser”上的未知参数“email”。位置:[object Object],路径:未定义
Posted
技术标签:
【中文标题】[GraphQL 错误]:消息:“rootMutation”类型的字段“createUser”上的未知参数“email”。位置:[object Object],路径:未定义【英文标题】:[GraphQL error]: Message: Unknown argument "email" on field "createUser" of type "rootMutation"., Location: [object Object], Path: undefined 【发布时间】:2020-01-10 11:17:59 【问题描述】:我在这里使用 express graphql 和 apollo 客户端。我面临一个突变问题
.................................................. ..................................................... ......................
我的错误:
[GraphQL 错误]:消息:字段上的未知参数“电子邮件” “rootMutation”类型的“createUser”,位置:[object Object],路径: 未定义
当我点击注册按钮时,它给了我一个错误。 我的组件:
import useMutation from "@apollo/react-hooks";
import gql from "apollo-boost";
const CREATE_USER = gql`
mutation createUser($email: String!, $password: String)
createUser(email: $email, password: $password)
_id
email
`;
function Register()
const [email, setEmail] = React.useState("");
const [password, setPassword] = React.useState("");
const [createUser, data ] = useMutation(CREATE_USER);
return (
<div class="row">
<div class="input-field col s12">
<input
id="email"
type="text"
class="validate"
onChange=e => setEmail(e.target.value)
/>
<label for="email"> Email </label>
</div>
<div class="input-field col s12">
<input
id="password"
type="password"
class="validate"
onChange=e => setPassword(e.target.value)
/>
<label for="password"> Password</label>
</div>
<button
className="btn"
onClick=() =>
createUser(
variables: $email: email, $password: password
);
console.log(data);
>
Register
</button>
</div>
);
export default Register;
我的架构:
``` type User
email: String!,
password: String,
createdEvents:[Event!]
type rootMutation
createUser(userInput: UserInput): User,
```
【问题讨论】:
你能在你的架构中显示你的 UserInput 类型吗? 为什么是负面的?... 【参考方案1】:您的变异接收一个 UserInput 参数,而不是直接接收电子邮件和密码。
const CREATE_USER = gql`
mutation createUser($userInput: UserInput)
createUser(userInput: $userInput)
_id
email
`;
...
<button
className="btn"
onClick=() =>
createUser(
variables: userInput: email, password
);
console.log(data);
>
Register
</button>
【讨论】:
以上是关于[GraphQL 错误]:消息:“rootMutation”类型的字段“createUser”上的未知参数“email”。位置:[object Object],路径:未定义的主要内容,如果未能解决你的问题,请参考以下文章
prisma - 运行 graphql 查询时获取环境变量未找到错误消息
安装 graphql-tools 和 graphql-express 之后。控制台'找不到名称'AsyncIterator'中的错误消息