Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Reactjs 如何根据连接类型字段中的值过滤继电器结果?_Reactjs_Graphql_Relayjs - Fatal编程技术网

Reactjs 如何根据连接类型字段中的值过滤继电器结果?

Reactjs 如何根据连接类型字段中的值过滤继电器结果?,reactjs,graphql,relayjs,Reactjs,Graphql,Relayjs,这个问题更多的是关于我不断遇到的一种模式,而不是这个问题的一个具体实例 通常我会有一个执行如下查询的中继容器: getUserGroup(id: $id) { users { edges { node { widgets { edges { node { id widgetTags { ed

这个问题更多的是关于我不断遇到的一种模式,而不是这个问题的一个具体实例

通常我会有一个执行如下查询的
中继
容器:

getUserGroup(id: $id) {
    users {
      edges {
        node {
          widgets {
            edges {
              node {
                id
                widgetTags {
                  edges {
                    node {
                      tagName
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
换句话说:我想在
WidgetList
组件中呈现数据,如下所示:

// WidgetList.js
User1:
  Widget1: 
    TagA
    TagB
   Widget2: 
    TagA
    TagC
User 2: 
   // ..etc etc
我的目标是根据
widgetags

我的问题是,为了过滤,我想我需要父级的所有
widgetag
信息。因为不是每个
小部件
都有任何
标记
,所以我必须从
用户
侧输入查询

如何使用
中继
处理这样的模式

到目前为止,我尝试过的选项有:

  • 使用
    state
    管理应用程序(如
    Mobx
    )集中我想要过滤的任何数据。每个
    小部件
    渲染
    时将其自身的数据添加到
    存储
    ,并且每次
    更新
    ,然后
    存储
    用于过滤
    WidgetList render()函数中的
    小部件
    数组

  • 我在
    WidgetList
    级别手动从
    query
    结果中提取相关数据,然后执行与步骤1相同的过滤步骤


  • 但是,这两种方法都不符合中继的最佳实践,所以我想知道是否有更好的方法

    您可以向
    窗口小部件
    字段添加参数。
    例如,您可以添加一个参数“withTags”,该参数接受一个标记数组作为输入,并且只返回具有这些标记的小部件:
    
    
    小部件(带有标签:[“运动”、“艺术])
    

    你觉得怎么样