Я пытаюсь получить данные в виде списка из frontmatter уценки, используя gatsbyjs и graphql.Учитывая список в файле уценки, цель будет заключаться в том, чтобы извлечь элементы списка в мой компонент реагирования для дальнейшего использования.
Это для моей работы, где я хочу создать веб-сайт с использованием GatsbyJS и React (вот почемуЯ не могу поделиться реальным кодом).До сих пор я пытался просто получить данные через GraphQL из frontmatter, но либо поле не определено, либо просто содержит null
значения.
У меня есть frontmatter, подобный этому:
---
name: "someName"
expertise: "someExpertise"
...
technologies:
- tech1
- tech2
- tech3
---
в своем коде js я пытаюсь получить данные, используя graphql, вот так:
query($slug: String!) {
profile: markdownRemark(fields: { slug: { eq: $slug } }) {
html
frontmatter {
date(formatString: "DD MMMM, YYYY")
author
expertise
name
dev_type
degree
technologies
}
}
}
Я ожидал, что вывод будет соответствовать форме, подобной этой:
technologies = ["tech1", "tech2", "tech3"]
но я получаю следующие ошибки при попытке скомпилировать и запустить сайт в среде разработки:
Случай 1.
Errors:
Int cannot represent non-integer value: "tech1"
Я не знаюкак решить эту проблему.В моем понимании это должно работать.Я уже пытался создать новый NodeField
с именем technologies
в gatsby-node.js
, но это тоже не сработало.
Я также думал о другой вещи в соответствии с этим frontmatter, в моем понимании frontmatter - это YAML, или, скорее,желаемый список технологий в файле уценки - это список YAML, не так ли?
В этом случае я должен настроить / расширить плагин gatsby-transformer-yaml
в gatsby-config.js
, но я понятия не имею, как этого добиться.правильный / правильный путь.
Случай 2.
К сожалению, я больше не могу воспроизвести свой запрос, но я нашел способ, где я не получил ошибку типа, но потомtechnologies
содержит только null
значений (с одинаковым содержанием frontmatter).
technologies = [ null, null, null, ...]