Если у меня есть graphQL
узлы, такие как
allFile {
edges {
...
}
}
name1 {...}
name2 {...}
, как я могу фильтровать по name1
и name2
?
Если я могу передать name1
в качестве переменнойКак я могу это сделать, поскольку они являются самыми первыми узлами?
Другими словами, обычный способ будет
allFile (filter: {extension: {eq: "jpg"} }){
edges {
nodes {
name
}
}
}
, но как это сделать, если я хочу что-то вроде
(filter: {eq: "name1"}){
edges {
nodes {
name
}
}
}
или непосредственно что-то вроде
query ($name: String) {
$name {
edges {
node {
name
message
}
}
}
}
, но это не представляется возможным (?)
РЕДАКТИРОВАТЬ
Я постараюсь объяснить себя лучше.Если бы у меня было это дерево:
AllMyPluginNodes {
edges {
node {
name
Я мог бы отфильтровать все узлы для этого узла с определенным расширением (как обычно).
Проблема в том, что имя "AllMyPluginNodes"меняется, например
MyName1Nodes {
edges {
...
MyName2Nodes {
edges {
...
MyName3Nodes {
edges {
...
И я знаю все эти имена, поэтому я хочу специально запросить эти имена.
В первом случае я бы сделал что-то вроде AllMyPluginNodes(filter: { extension: { eq: "yml" } })
, чтобы получить все yml
файлы в узле AllMyPluginNodes
, но теперь, как я могу это сделать?
MyName1Nodes (filter: { extension: { eq: "yml" } })
Это, очевидно, работает, но я хочу, чтобы MyName1Nodes
была переменной, и это не проблема, поскольку я могу передавать переменные через createPages
контекст.Проблема в том, что когда у меня есть эта переменная, как я могу использовать ее для запроса MyName1Nodes
при условии, что это «корневой» или «основной» узел?Возможно ли это?
Я могу сделать что-то вроде
query($ext: String) {
MyName1Nodes (filter: { extension: { eq: $ext } })`
Но я не могу сделать что-то подобное
query($ext: String, $name: String) {
$name (filter: { extension: { eq: $ext } })`
Могу ли я?