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”,该参数接受一个标记数组作为输入,并且只返回具有这些标记的小部件:
小部件(带有标签:[“运动”、“艺术])
你觉得怎么样