Вы должны иметь возможность отфильтровать нужные вам страницы в файле 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 дважды по одному на каждый тип поста (реагирует и не реагирует на страницы)