Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为GraphQLObjectType的GraphQLList定义中继片段?_Java_Reactjs_Graphql_Relayjs - Fatal编程技术网

Java 如何为GraphQLObjectType的GraphQLList定义中继片段?

Java 如何为GraphQLObjectType的GraphQLList定义中继片段?,java,reactjs,graphql,relayjs,Java,Reactjs,Graphql,Relayjs,我已经定义了一个GraphQLJava实现和一个模式。 是否可以在GraphQL查询中创建GraphQList(SomeGraphQLObjectType)类型的字段,并在Relay.QL{}声明片段中使用它,以便接收所需对象的列表?这是继电器“连接”工作的地方吗 是否可以创建类型为的字段 graphqlist(SomeGraphQLObjectType)并在 Relay.QL{}声明片段 是的,在指令的帮助下是可能的。它告诉Relay该字段是一个列表,而不是单个项目 像这样定义字段,其中项是一

我已经定义了一个GraphQLJava实现和一个模式。 是否可以在GraphQL查询中创建GraphQList(SomeGraphQLObjectType)类型的字段,并在Relay.QL{}声明片段中使用它,以便接收所需对象的列表?这是继电器“连接”工作的地方吗

是否可以创建类型为的字段 graphqlist(SomeGraphQLObjectType)并在 Relay.QL{}声明片段

是的,在指令的帮助下是可能的。它告诉Relay该字段是一个列表,而不是单个项目

像这样定义字段,其中
是一个具有相同
名称
的GraphQLObjectType:

itemList: {
  type: new GraphQLList(Item),
  // other stuff including resolve function
},
由于您已将中继容器划分为父容器和子容器,请按如下方式定义父容器:

export default Relay.createContainer(ParentComponent, {
  fragments: {
    itemList: () => Relay.QL`
      fragment on Item @relay(plural:true) {
        ${ChildComponent.getFragment('item')}
      }
    `,
  },
});
export default Relay.createContainer(ChildComponent, {
  fragments: {
    item: () => Relay.QL`
      fragment on Item {
        id,
        name,
        color {
          id,
          name,
        }
      }
    `,
  },
});
子容器如下所示:

export default Relay.createContainer(ParentComponent, {
  fragments: {
    itemList: () => Relay.QL`
      fragment on Item @relay(plural:true) {
        ${ChildComponent.getFragment('item')}
      }
    `,
  },
});
export default Relay.createContainer(ChildComponent, {
  fragments: {
    item: () => Relay.QL`
      fragment on Item {
        id,
        name,
        color {
          id,
          name,
        }
      }
    `,
  },
});
您可以通过Clay Allsopp在中了解有关中继指令的更多信息

还有一个你也可以看的

这是继电器“连接”工作的地方吗

视情况而定。如果您不希望所有项目都在一次拍摄中,那么连接是一种方式。它支持以增量方式获取数据

是否可以创建类型为的字段 graphqlist(SomeGraphQLObjectType)并在 Relay.QL{}声明片段

是的,在指令的帮助下是可能的。它告诉Relay该字段是一个列表,而不是单个项目

像这样定义字段,其中
是一个具有相同
名称
的GraphQLObjectType:

itemList: {
  type: new GraphQLList(Item),
  // other stuff including resolve function
},
由于您已将中继容器划分为父容器和子容器,请按如下方式定义父容器:

export default Relay.createContainer(ParentComponent, {
  fragments: {
    itemList: () => Relay.QL`
      fragment on Item @relay(plural:true) {
        ${ChildComponent.getFragment('item')}
      }
    `,
  },
});
export default Relay.createContainer(ChildComponent, {
  fragments: {
    item: () => Relay.QL`
      fragment on Item {
        id,
        name,
        color {
          id,
          name,
        }
      }
    `,
  },
});
子容器如下所示:

export default Relay.createContainer(ParentComponent, {
  fragments: {
    itemList: () => Relay.QL`
      fragment on Item @relay(plural:true) {
        ${ChildComponent.getFragment('item')}
      }
    `,
  },
});
export default Relay.createContainer(ChildComponent, {
  fragments: {
    item: () => Relay.QL`
      fragment on Item {
        id,
        name,
        color {
          id,
          name,
        }
      }
    `,
  },
});
您可以通过Clay Allsopp在中了解有关中继指令的更多信息

还有一个你也可以看的

这是继电器“连接”工作的地方吗


视情况而定。如果您不希望所有项目都在一次拍摄中,那么连接是一种方式。它支持以增量方式获取数据

感谢您快速而有根据的回复!使用此选项后,我想我应该考虑查询中的查看器根类型,这可能会使ParentComponent获取一个项目列表感谢您提供快速且有根据的回复!在使用此选项之后,我想我应该考虑查询中的查看器根类型,这可能会使ParentComponent获取项目列表