我正在尝试创建一个Web应用程序,其中以ReactJs
为前端,以GraphQL
为服务层,以Relay
作为服务层与前端之间的通信。
在此过程中,我在服务层中创建了一个变异并将其集成到前端中。最后尝试使用以下命令生成文件
继电器编译器--src ./src --schema ./schema.graphql
get-graphql-schema http://localhost:6001/xampr> schema.graphql
所有这些都不会引发此错误
写js
错误:
您为GraphQL文档提供了验证错误:未知类型“ GetActivityMessagesRequestInput”。 服务/Auth/GetActivityMessagesMutation.js(2:49) 1:2:突变GetActivityMessagesMutation($ input:GetActivityMessagesRequestInput!){ ^ 3:getActivityMessagesRequest(input:$ input){ 错误命令失败,退出代码为100。
未找到GraphQL
堆栈为空,无法将未定义转换为graphQL查询
我的中继脚本标记是
"relay": "relay-compiler --src ./src --schema ./schema.graphql --watchman false"
试图卸载并重新安装所有软件包
"relay": "relay-compiler --src ./src --schema ./schema.graphql --watchman false"
无法使用中继编译器创建生成的变异文件
答案 0 :(得分:0)
根据错误消息,GetActivityMessagesRequestInput
不是您的架构中定义的有效graphQL input
。
检查服务器架构中的input
定义(如果存在),否则请查看将正确的input
传递给该突变的方式。您不妨直接致电scalar input
。
可能是GetActivityMessagesCreateInput
。
示例来说明我的意思。
signin(email: String!, password: String!): AuthPayload!
updateProfile(data: UserUpdateInput!, id: ID): User!
如果我这样叫符号突变
mutation SignIn ($input: SignInMutationInput!) {
signin(input: $input){
user: { id, email }
token
}
它将返回与您说You supplied a GraphQL document with validation errors:Unknown type "SignInMutationInput"
相同的错误
要解决上述问题,我可以在服务器中创建一个名为input SignInMutationInput { email: String! password: String! }
的自定义输入类型,也可以
像这样改变我称呼突变的方式;
mutation SignIn ($email: String!, $password: String! ) {
signin(email: $email, password: $password){
user: { id, email }
token
}
我希望这会有所帮助。