reactjs - GraphQL 按数据过滤
问题描述
我有以下查询:
query MyQuery($today: Date) {
allMovies(
filter: {
info: { endDate: { gte: $today }, startDate: { lte: $today } }
}
) {
edges {
node {
info {
startDate
endDate
}
}
}
}
我正在将 ReactJS 与 GatsbyJS 一起使用,谁能解释我如何将变量插入到 graphql 中?我真的不明白如何传递和创建 $today 这个查询。或者也许有可能以正确的格式插入今天的日期。
所有日期均为 YYYY-MM-DD
在 mysql 我可以直接插入变量/有一个函数 CURDATE() :(
解决方案
您必须在调用 API 时将变量作为单独的对象传递。来自graphql.org的示例:
var dice = 3;
var sides = 6;
var query = `
query RollDice($dice: Int!, $sides: Int) {
rollDice(numDice: $dice, numSides: $sides)
}`;
fetch('/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
query,
variables: { dice, sides },
})
}).then(r => r.json())
.then(data => console.log('data returned:', data));
推荐阅读
- tableau-api - 如何获取tableau API中任意用户的user_id
- wordpress - 如何使用 elementor 插件覆盖 woocommerce 中的 archive-product.php 模板
- python - Python Pandas - 根据之前行中自己的先前值创建数据框列
- python - 如何使用 json_normalize 函数对元数据进行规范化
- flutter - Flutter pageView setOffscreenPageLimit 替代
- flutter - 如何在颤动中使用保留名称作为变量
- java - 使用 Javalin 将 java.util.Date 转换为 Java.sql.Date
- jpa - Spring Data JPA 按计算字段排序
- java - Eclipse 启动程序执行时间过长
- javascript - 在节点 js 中使用电子邮件或电话或用户名登录