Gatsby JS создать страницу, используя другой макет - PullRequest
0 голосов
/ 12 апреля 2020

Я просмотрел все и не могу найти ответ на этот вопрос. Я создаю кучу страниц, и это хорошо, но есть несколько страниц, где я хочу указать другой макет / html. js, где я могу полностью настроить все, что выводится со страницы (в c глава). Использование Helmet недостаточно для того, что я хочу сделать.

Есть ли способ указать createPage не использовать html .js / default layout и использовать что-то еще?

Многие спасибо

1 Ответ

0 голосов
/ 13 апреля 2020

Вы должны иметь возможность отфильтровать нужные вам страницы в файле gatsby- node.js. По сути, запрос, который вы используете для динамического создания этих страниц, разбейте его на два отдельных запроса и на этих запросах создайте фильтр.

Так, например, если у вас есть поле категории из вашего запроса graphQL или специфика c Откажите, что вы хотите использовать конкретный макет, для которого вы бы отфильтровали.

Вот пример запроса graphQL с использованием ButterCMS, который отображает "ReactPosts" и "NonReactPosts"

{
  ReactPosts: allButterPost(filter: {categories: {elemMatch: {name: {eq: "React"}}}}) {
    nodes {
      id
    }
  }
  NonReactPosts: allButterPost(filter: {categories: {elemMatch: {name: {ne: "React"}}}}) {
    nodes {
      id
    }
  }
}

Когда вы создаете страницы, используя createPages , вы будете использовать разные шаблоны компонентов, и эти компоненты будут содержать разные макеты.

В этом случае вам также придется дважды вызывать createPages дважды по одному на каждый тип поста (реагирует и не реагирует на страницы)

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