相关疑难解决方法(0)

递归数据和组件,稍后提取错误

首先关闭我的graphql数据模型:

type Human {
  id: !String,
  name: !String,
  children: [Human]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的唯一路由(中继路由配置):

class extends Relay.Route {
  static queries = {
    human: () => Relay.QL`query RootQuery { viewer }`
  };
  static routeName = 'AppHomeRoute';
}
Run Code Online (Sandbox Code Playgroud)

列表组件:

class HumanList extends Component {
  render() {
    let {children} = this.props.human;

    let subListsHTML = human ? children.map(child => (
      <HumanListItem key={child.id} human={child}/>
    )) : '';

    return <ul>{subListsHTML}</ul>;
  }
}

export default Relay.createContainer(HumanList, {
  fragments: {
    human: () =>  Relay.QL`
      fragment on Human {
        children { …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql relayjs

4
推荐指数
1
解决办法
2043
查看次数

对未知级别 GraphQL 的嵌套查询

我有一个树结构。以文件夹为例。

如何使用 GraphQL 将嵌套查询查询到 N 级。

让我们举个例子,因为我在课堂上有以下属性。

public class DocumentField
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public List<DocumentField> Children { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

服务器端的设计方式是,如果有孩子,那么它将作为孩子包括在内。但是 graphql 层正在限制它,因为我的查询如下。

以下查询不会带来孩子的结果。

query ($folderId: Int!) {
                              folder(folderId: $folderId) {
                                id,
                                name
                              }
                            }
Run Code Online (Sandbox Code Playgroud)

以下查询给出错误为:嵌套查询 DocumentFieldICollection 类型的字段子项必须有一个子选择

query ($folderId: Int!) {
                          folder(folderId: $folderId) {
                            id,
                            name,
                            children
                          }
                        }
Run Code Online (Sandbox Code Playgroud)

graphql

4
推荐指数
1
解决办法
2337
查看次数

标签 统计

graphql ×2

reactjs ×1

relayjs ×1