Я только начал использовать Гэтсби с Sanity CMS без головы.
По большей части это довольно просто; но знание лучших практик для запроса данных через GraphQL все еще беспокоит меня. То, как я это делаю в настоящее время, это просто яростно щелкаю по моей структуре CMS на площадке GraphQL и нахожу то, что я хочу. Это работает, но отсутствие единообразия в этом подходе делает меня неловким.
Например, если я хочу, чтобы изображение героя находилось где-то в CMS, мне нужно будет сделать что-то вроде:
query SomePageQuery($id: String) {
sanitySomePage(id: { eq: $id }) {
id
heroImage {
asset {
fluid(maxWidth: 1500) {
...GatsbySanityImageFluid
}
}
}
}
}
Но если мне нужен блок PortableText , мне нужно запросить соответствующее поле _raw
любого типа. Итак, если мой тип был introText
, Гэтсби также предоставляет _rawIntroText
. Я могу получить полный PortableText только из этой _raw
версии данных. Например:
query SomePageQuery($id: String) {
sanitySomePage(id: { eq: $id }) {
id
_rawIntroText
}
}
Кажется, что для некоторых данных вы можете использовать [Type]
, а иногда вам нужно для использования _raw[Type]
.
Нет большой документации по , почему это так. И я не уверен, применяется ли это через Сэнити или Гэтсби.
Мой вопрос, я думаю, был бы, почему _raw[Anything]
существует в мире Гэтсби и / или Сэнити, и как люди решают, какой использовать (кроме проб и ошибок на площадке GraphQL и во время выполнения)?