#graphql #gatsby
#graphql #gatsby
Вопрос:
Я новичок в Gatsby.js Я разрабатываю страницу с выпадающим списком на 12 месяцев. Как только пользователь выберет месяц, я передам значение в компонент, который будет отображать другой набор результатов на основе выбранного месяца.
В моем компоненте есть запрос graphql для извлечения данных с помощью useStaticQuery.
Я понимаю, что useStaticQuery не может принимать какие-либо переменные, поэтому возможно ли отфильтровать возвращаемые данные и создать другой набор данных на основе введенного месяца? Или я должен просто создать 12 компонентов и отобразить соответствующий на основе выбранного месяца?
(На самом деле я пытался выполнить цикл обработки данных и успешно вернуть одно совокупное значение, но я не уверен, возможно ли вернуть подмножество результата данных
data.allData.edges.forEach(edge => {
if(edge.node.month==inputMonth)
total=total edge.node.amount
})
outValue= total
)
Ответ №1:
Я думаю, вы пытаетесь использовать find()
цикл. В вашем случае:
let matchedMonth = data.allData.edges.find(edge => edge.node.month === inputMonth)
По сути, вы просматриваете allData
(все месяцы), чтобы найти, какой из них в точности равен inputMonth
. Поскольку вы сохраняете его в matchedMonth
, вы можете воспроизводить все, что захотите (переход к компоненту и т.д.).
Комментарии:
1. Не совсем то, что мне нужно, но ваш ответ напоминает мне, что результат данных на самом деле просто массив, поэтому я могу манипулировать им с помощью метода массива javascript, чтобы получить все, что я хочу, спасибо