Как использовать внутренние ссылки в sanity.io и gatsby с gatsby-source-sanity? - PullRequest
1 голос
/ 16 марта 2020

Я создал тип internalLink, следуя документации sanity, и в соответствии с замечанием по использованию внутренних ссылок с API-интерфейсом graphql я создал его как отдельный тип следующим образом:

export default {
    name: 'internalLink',
    type: 'object',
    title: 'Internal link',
    fields: [
      {
        name: 'reference',
        type: 'reference',
        title: 'Reference',
        to: [
          { type: 'helpTopic' },
          // other types you may want to link to
        ]
      }
    ]
  }

Я добавил это схема. js выглядит следующим образом:

import internalLink from './internalLink'

export default createSchema({
  name: 'default',
  types: schemaTypes.concat([
    internalLink,
    helpTopic,
    blockContent,
    figure,
    slideshow,
  ])
})

и добавляется в аннотации следующим образом:

annotations: [
          {
            type: 'internalLink'
          }
        ]

Когда я использую graphiql в Gatsby, если я не использую resolReferences, то Я получаю неразрешенные ссылки правильно:

"markDefs": [
                {
                  "_key": "00a07e239d3d",
                  "_type": "internalLink",
                  "reference": {
                    "_ref": "7c635eee-0d98-5335-a376-4101922ca4b7",
                    "_type": "reference"
                  }
                }
              ]

однако, когда я использую _rawBody(resolveReferences:{maxDepth:1000}), ссылка не разрешается и возвращается как ноль:

"markDefs": [
                {
                  "_key": "00a07e239d3d",
                  "_type": "internalLink",
                  "reference": null
                }
              ]

Это ошибка или что-то не так, что я делаю. Я попытался просмотреть документы, но не могу понять это, и в примере комбинированного проекта gatsby sanity нет примера internalLinks.

Спасибо за помощь заранее.

1 Ответ

2 голосов
/ 20 марта 2020

На данный момент аннотации не могут принимать такие типы схем. Вам нужно будет поместить туда весь блок схемы. Немного странное ограничение. Я думаю, что кто-то уже вставил запрос билета / функции относительно этой проблемы в репозитории Github Sanity.io.

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