graphql - 以正则表达式为变量的 Gatsby graphql
问题描述
我想将正则表达式与 graphql 查询变量一起使用。
这不会返回结果:
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
}
在此页面中嵌入的其中一个 graphiQL 中尝试一下
推荐阅读
- c# - UWP IoT Core RTSP 流式音频
- hadoop - 如何使用 Rest API 手动触发 HBase 平衡器命令?
- python - 如何在“执行 python 脚本”部分的 azure ml studio 中将外部泡菜文件内容加载为数据框?
- java - 如何检查我的应用程序是否是默认浏览器
- workflow-foundation - Code 基于 Windows Workflow Foundation 生成活动图是个好主意吗?
- authentication - SignalR 核心自定义身份验证 - 用户在 /negotiate 中进行身份验证后,Context.User.Identity 为空
- laravel - Laravel 雄辩的关系搜索无法正常工作
- mysql - 加入查询未显示预期结果
- amqp - 如何使用 rhea 使用 amqp 在 azure 服务总线中实现重新交付延迟
- css - Kendo MVC 电子表格 - 将单元格文本旋转 90°