Плагин Gatsby Remark: Созданные узлы видимы для GraphIQL, но запросы на страницах Gatsby возвращают ноль - PullRequest
1 голос
/ 06 февраля 2020

Я работаю над плагином для gatsby-transformer-notes. В своем плагине я беру данные из преобразователя Remark и создаю узел graphql нового типа. Когда я запускаю сайт и открываю GraphIQL в http://localhost: 8000 / ___ graphql , я вижу новый узел моего плагина и его данные. Однако, когда я пытаюсь получить доступ к данным этого узла в компоненте страницы Gatsby, запрос graphql возвращает ноль для этого типа узла. Почему данные не отображаются в запросе graphql на моей странице? Могу ли я не создавать новые узлы graphql в плагинах Remark? API плагина Remark gatsby предоставляет необходимые методы для создания узлов.

По этой ссылке у меня есть минимальный репозиторий репродукций. Инструкции по его запуску и просмотру проблемы находятся в файле readme.

https://github.com/timothymcmackin/test-create-nodes

Я создаю узел graphQL в plugins/gatsby-remark-internal-toc/index.js с помощью метода createNode :

  if (headings.length > 0) {
    const { createNode } = actions;

    const headingNode = {
      headings: headings,
      path: markdownNode.frontmatter.path,
      id: createNodeId(`${markdownNode.frontmatter.path}.${markdownNode.frontmatter.title}`),
      children: [],
      internal: {
        description: `Headings and links for ${markdownNode.fileAbsolutePath}`,
        type: "topicInternalHeadings",
        contentDigest: createContentDigest(headings),
        content: JSON.stringify(headings),
      }
    };

    await createNode(headingNode);
  }

Я запускаю сайт командой Gatsby develop. Затем я открываю graphIQL и запускаю этот запрос:

query MyQuery {
  topicInternalHeadings(path: {eq: "/mypage.html"}) {
    headings {
      level
      path
      text
    }
  }
}

Запрос возвращает данные для узла topicInternalHeadings.

Затем я открываю http://localhost:8000/myPage.html, в котором есть аналогичный запрос. Тем не менее, результаты его запроса:

{markdownRemark: {…}, topicInternalHeadings: null}

Ожидаемый результат

Данные узла graphql, которые я создаю в плагине, доступны как для запросов graphiql, так и для graphql на страницах Gatsby.

Фактический результат

Данные об узлах доступны для graphiql, но запросы graphql на страницах Gatsby возвращают ноль.

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