wva*_*aal 6 javascript relay graphql
标题主要说明了一切:我正在构建一个反应/中继应用程序,它将允许用户在运行时动态创建图表,显示指定时间范围内的各种收入流。此图表的一个特征是所述用户的指定每个收入流(例如采样间隔的能力YEAR,QUARTER,MONTH,WEEK,等)每个流的参数。
这些值在架构中定义为一个GraphQLInputObjectType实例,如下所示:
enum timeSeriesIntervalEnum {
YEAR
QUARTER
MONTH
WEEK
}
Run Code Online (Sandbox Code Playgroud)
在客户端,我react-relay定义了以下形式的片段:
fragment on BalanceSheet {
income {
# some income stream
afterTax {
values(interval: $samplingInterval)
dates(interval: $samplingInterval)
}
}
}
Run Code Online (Sandbox Code Playgroud)
此变量值将作为单独组件中下拉菜单的一部分填充,其中下拉菜单中的每个值都应对应一个有效值timeSeriesIntervalEnum。
虽然肯定可以简单地对这些值进行硬编码,但底层 API 仍然经常更改,我想减少耦合,而是通过为给定下拉列表(例如timeSeriesIntervalEnum)指定变量类型来动态填充这些字段,然后使用用于解析值并填充配置 json 文件(运行前)或在运行时动态分配值的 graphql 客户端架构。
注意:我已经在开始前进行了一些查询字符串和片段转换,因此如果需要,我不反对在此过程中创建 json 配置文件。
这可以使用自省查询来完成。
在您的情况下,这是一种可能的解决方案:
{
__type(name: "timeSeriesIntervalEnum") {
name
enumValues {
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
响应包含所有可能类型的列表:
{
"data": {
"__type": {
"name": "timeSeriesIntervalEnum",
"enumValues": [
{
"name": "YEAR"
},
{
"name": "QUARTER"
},
{
"name": "MONTH"
},
{
"name": "WEEK"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |