Массив объектов, которые не отображаются в порядке, заданном в CMS, с использованием Kentico Kontent - PullRequest
1 голос
/ 18 февраля 2020

У меня проблемы с отображением массива виджетов в правильном порядке. Я использую graphql для запроса данных страницы из kentico's kontent.ai. Страница в cms имеет поле для расширенного текста, которое может содержать несколько виджетов. Однако, когда я консоль регистрирую массив элементов виджетов из объекта данных graphql, массив не в порядке. Например, если порядок в cms:

текстовый элемент, элемент видео, элемент изображения

, то в массиве объектов этот порядок будет выглядеть примерно так:

[элемент изображения, текстовый элемент, элемент видео]

важно: это происходит только тогда, когда я использую более 10 виджетов в поле расширенного текста. Если я использую до десяти виджетов, порядок правильный. но если я использую больше 10, порядок будет неправильным.

Это странно, потому что это не в порядке на моем локальном или на живом сайте, но это рендеринг в порядке на локальных моих коллег (даже на страницы, которые отображают более 10 элементов). Мы используем одну и ту же ветку, и в коде нет никакой разницы. Знаете ли вы, почему это может происходить?

и есть ли способ, которым я могу убедиться, что порядок в массиве остается таким же, как и в cms?

Вот упрощенная версия моего запроса (это массив connected_items , который не упорядочен правильно):

query workDetailQuery($slug: String!) {
kenticoCloudItemWorkDetailPage(fields: { slug: { eq: $slug } }) {
    body_text {
        linked_items {
            ... on KenticoCloudItemStatsBreaker {
                internal {
                    type
                }
            }
            ... on KenticoCloudItemSectionBlock {
                internal {
                    type
                }
            }
            ... on KenticoCloudItemQuoteWithImages {
                internal {
                    type
                }
            }
        }
    }
}

} ​​

Это проект gatsby (версия 2.0.19), и я использую пакет gatsby-source-kentico-cloud .

UPDATE , так что нам удалось это выяснить! Просто версия узла по умолчанию на моей машине и версия узла, используемая netlify, были 10.19.0. Мы обновили обе версии (на моей машине и на netlify) до 12.13.0, и теперь порядок правильный.

1 Ответ

0 голосов
/ 26 февраля 2020

Я мог бы воспроизвести это поведение на gatsby-source-kontent v4.3.0, и мне кажется, что это ошибка в исходном плагине.

Согласно исходному коду , он действительно должен сохранять заказ от CMS - он также находится в правильном порядке в ответе API доставки. Не могли бы вы сообщить об ошибке в этом хранилище, чтобы я мог продолжить ее расследование?

РЕДАКТИРОВАТЬ: Это поведение было вызвано устаревшей версией узла. Отлично работает на v12.

...