首页 > 解决方案 > 中继编译器确实生成自动生成的文件

问题描述

这是我的 schema.graphql

schema {
 query: RootQuery
}

type RootQuery {
student(id: String): Student
students: [Student]
school(id: String): School
}

type School {
id: String
name: String
address: String
students: [Student]
}

type Student {
id: String
name: String
age: Int
address: String
school: School
}

这是我的组件 StudentQuery.js

import React from "react";
import { graphql, QueryRenderer } from "react-relay";
//import graphql from "babel-plugin-relay/macro";
import environment from "./relayEnvironment";

 export default class Database extends React.Component {
 render() {
 return (
  <QueryRenderer
    environment={environment}
    query={graphql`
      query StudentQuery {
        student(id: "M1") {
          name
        }
      }
    `}
    variables={{}}
    render={({ error, props }) => {
      if (error) {
        return <div>Error!</div>;
      }
      if (!props) {
        return <div>Loading...</div>;
      }
      return <div>User ID: {props.student.name}</div>;
    }}
  />
   );
   }
  }

当我尝试运行命令 yarn relay 它总是给出错误

错误:内部错误:未知类型:“ID”。错误命令失败,退出代码为 100。

中继编译器不会创建自动生成的文件。

提前致谢

标签: reactjsgraphqlrelaymodern

解决方案


我有同样的问题。我不知道为什么,但是如果您将具有类型的字段添加ID到您的对象类型之一,错误就会消失:

type School {
    strangeID: ID
    id: String
    name: String
    address: String
    students: [Student]
}

它一定是编译器中的一个错误。


推荐阅读