Я пытаюсь создать фрагмент и передать его компонентам. Данные поступают из datocms, и обычные запросы, такие как следующие, работают отлично
{
datoCmsHomeIntro {
introTitle: introTitleNode {
markdown: childMarkdownRemark {
html
}
}
introImage {
url
}
}
}
Я прочитал документы Гэтсби по фрагментам и некоторым другим примерам, но просто не могу заставить его работать.
Прямо сейчас я получил следующее:
в макетах / index.js
export const introFragmentQuery = graphql`
fragment intro on DatoCmsHomeIntro {
introTitle: introTitleNode {
markdown: childMarkdownRemark {
html
}
}
introImage {
url
}
}
`
и в моем компоненте:
export const pageQuery = graphql`
query IntroQuery {
allDatoCmsHomeIntro {
edges {
node {
...intro
}
}
}
}
`
Мне явно чего-то не хватает, поэтому любые указатели будут очень признательны.
Да, в основном, как бы я ни пытался внедрить это в интерфейс, всегда что-то кажется неопределенным. Также теперь, перечитывая документы на следующее утро, я понимаю, что все должно быть наоборот. Таким образом, фактический запрос внутри компонентов и запрос, вызывающий его, фрагментируют внутри макета или страницы. Это верно. Вроде сбит с толку всем этим;)
Ваши запросы graphql компилируются статически; т.е. они извлекаются из JS и заменяются данными перед выполнением JS. Гэтсби использует только ваш начальный запрос «страницы». Вы можете разместить фрагменты в другом месте и использовать их на своей «странице», но запросы верхнего уровня в этих других файлах не будут выполняться для «страницы», которую вы загружаете. Есть смысл?


Вы получаете сообщение об ошибке или
data.allDatoCmsHomeIntroне определен?