如何解决我可以对Gatsby.js中useStaticQuery的数据结果应用过滤器吗?
我是Gatsby.js的初学者,我正在开发一个下拉列表为12个月的页面。用户选择月份后,我会将值传递到组件中,该组件将根据所选的月份显示不同的结果集。
在我的组件中有一个graphql查询来使用useStaticQuery检索数据。
我知道useStaticQuery不能接受任何变量,因此是否可以过滤返回的数据并根据输入的月份创建另一个数据集?还是我应该只创建12个组件并根据所选的月份显示对应的组件?
(实际上,我尝试循环数据并成功返回单个聚合值,但是我不确定是否可以返回数据结果的子集
data.allData.edges.forEach(edge => {
if(edge.node.month==inputMonth)
total=total+edge.node.amount
})
outValue= total
)
解决方法
我认为您正在尝试使用find()
循环。就您而言:
let matchedMonth = data.allData.edges.find(edge => edge.node.month === inputMonth)
基本上,您正在遍历allData
(所有月份)来查找哪一个与inputMonth
完全相等。由于您将其保存在matchedMonth
中,因此您可以播放任何内容(传递给组件等)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。