以正则表达式为变量的 Gatsby graphql
Gatsby graphql with regex as variable
我想将正则表达式与 graphql 查询变量一起使用。
这不会 return 结果:
export const query = graphql`
query(
$episodes: String!
) {
episodes: allMarkdownRemark(
filter: { fields: { slug: { regex: $episodes } } }
) {
edges {
node {
id
}
}
}
}
`;
但是,这会起作用:
export const query = graphql`
query() {
episodes: allMarkdownRemark(
filter: { fields: { slug: { regex: "/episodes/travel/" } } }
) {
edges {
node {
id
}
}
}
}
`;
怎么了?
通过查询参数传递正则表达式应该可以,请参见下面的屏幕截图。确保您将正则表达式作为字符串传递,而不是实际的正则表达式。此外,您需要转义中间的斜线:
context: {
- episodes: /episodes\/traveller/ <-- doesn't work
+ episodes: /episodes\/traveller/.toString() <-- works
or episodes: "/episodes\/traveller/" <-- also works
}
在 this page 中嵌入的 graphiQL 之一中试用
我想将正则表达式与 graphql 查询变量一起使用。
这不会 return 结果:
export const query = graphql`
query(
$episodes: String!
) {
episodes: allMarkdownRemark(
filter: { fields: { slug: { regex: $episodes } } }
) {
edges {
node {
id
}
}
}
}
`;
但是,这会起作用:
export const query = graphql`
query() {
episodes: allMarkdownRemark(
filter: { fields: { slug: { regex: "/episodes/travel/" } } }
) {
edges {
node {
id
}
}
}
}
`;
怎么了?
通过查询参数传递正则表达式应该可以,请参见下面的屏幕截图。确保您将正则表达式作为字符串传递,而不是实际的正则表达式。此外,您需要转义中间的斜线:
context: {
- episodes: /episodes\/traveller/ <-- doesn't work
+ episodes: /episodes\/traveller/.toString() <-- works
or episodes: "/episodes\/traveller/" <-- also works
}
在 this page 中嵌入的 graphiQL 之一中试用