无法在中继编译器中为突变生成自动生成的文件

时间:2019-04-23 06:21:04

标签: reactjs relay relaycommand

我正在尝试创建一个Web应用程序,其中以ReactJs为前端,以GraphQL为服务层,以Relay作为服务层与前端之间的通信。

在此过程中,我在服务层中创建了一个变异并将其集成到前端中。最后尝试使用以下命令生成文件

  1. 继电器编译器--src ./src --schema ./schema.graphql

  2. 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"

无法使用中继编译器创建生成的变异文件

1 个答案:

答案 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 }

我希望这会有所帮助。