Как создать список строк в уценке frontmatter? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь получить данные в виде списка из 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, ...]

1 Ответ

0 голосов
/ 14 июня 2019

Обнаружено technologies: [ tech1, tech2, tech3 ] является решением этой проблемы. Фактическая проблема была в том, что в моих файлах уценки были непоследовательные данные.

...