当前位置:  开发笔记 > 编程语言 > 正文

我尝试使用中继实现连接,并且所有节点的ID都相同

如何解决《我尝试使用中继实现连接,并且所有节点的ID都相同》经验,为你挑选了1个好方法。

我使用graphql编写了一个非常简单的模式,但是边缘中的所有ID都是相同的.

{
    "data": {
        "imageList": {
            "id": "SW1hZ2VMaXN0Og==",
            "images": {
                "edges": [
                  {
                      "node": {
                          "id": "SW1hZ2U6",
                          "url": "1.jpg"
                      }
                  },
                  {
                      "node": {
                          "id": "SW1hZ2U6",
                          "url": "2.jpg"
                      }
                  },
                  {
                      "node": {
                          "id": "SW1hZ2U6",
                          "url": "3.jpg"
                      }
                  }
                ]
            }
        }
    }
}

我在github上发布了具体细节,这里是链接.



1> 小智..:

因此,globalIdField希望您的对象具有名为"id"的字段.然后它将您传递给globalIdField的字符串添加一个':'和您的对象的id来创建其全局唯一ID.

如果你的对象没有一个名为'id'的字段,那么它就不会附加它,你的所有globalIdField都只是你传入的字符串和':'.所以他们不会是独一无二的,他们都会是一样的.

您可以传递给globalIdField的第二个参数,该参数是获取对象并返回要使用的globalIdField的id的函数.所以假设你的对象的id字段实际上被称为'_id'(感谢Mongo!).您可以这样调用globalIdField:

id: globalIdField('Image', image => image._id)

你去吧 继电器的唯一ID享受.

以下是graphql-relay-js中相关源代码的链接:https://github.com/graphql/graphql-relay-js/blob/master/src/node/node.js#L110

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有