Запрос нескольких файлов JSON с graphQL в Гэтсби - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь запросить два JSON файла, которые я помещаю в каталог src/data.Я установил gatsby-transformer-json и добавил каталог в качестве источника.

{
  resolve: `gatsby-source-filesystem`,
  options: {
    path: `${__dirname}/src/data/`
  }
}

Затем я попробовал несколько способов построения запроса graphql, но я могу только успешно запросить первый созданный мной файл json work_experiences.json, которыйвыглядит так, хотя мой второй файл skills.json имеет точно такую ​​же структуру

{
  "work_experiences": [
    {
      "body": "lorem ipsum",
      "title": "lorem ipsum",
      "role": "lorem",
      "dateBegin": "2015-10-01",
      "dateEnd": "2016-07-03",
      "companyUrl": "http://www.lorem.com",
      "workUrl": "/lorem/ipsum/"
    },
    ...

Запрос на skill.json всегда возвращает null enter image description here enter image description here

Есть ли способ запросить оба файла или мне нужно объединить все в один data.json файл?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

@ аймен правильный.Затем вы можете настроить запрос на вызов нескольких отдельных файлов JSON:

export const pageQuery = graphql`
  query indexQuery {
    allSocialJson {
      edges {
        node {
          url
          type
        }
      }
    }
    allExperienceJson {
      edges {
        node {
          id
          company
          title
        }
      }
    }
    allCertificationsJson {
      edges {
        node {
          name
          id
          start
          end
          authority
        }
      }
    }
    allEducationJson {
      edges {
        node {
          id
          school
          program
        }
      }
    }
  }
`

0 голосов
/ 22 марта 2019

Если у вас есть 2 файла в одной корневой папке и вы будете запрашивать, вы будете получать данные только с одного узла, потому что dataJson запрашивает один файл.

Или вы используете allDataJson какэто:

{
  allDataJson{
    edges{
      node{
        work_experiences{
          title
        }
        skills{
         name
        }
      }
    }
  }
}

для хорошего решения, в данном случае, это чтобы ваши json-файлы с одним объектом сохранялись в отдельных папках по одному json на папку.

Например, выу вас есть Users данные:

  • создайте папку User в вашем src / data.
  • создайте файл index.json с помощью { "name": "blabla" }.
  • запросите ваши данные.

Как это:

{
  userJson{
    name
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...