Гутенберг установил атрибуты в подписке - перестал работать с 5.3 - PullRequest
0 голосов
/ 23 января 2020

Мы создали блок контура (используя InnerBlocks для поддержки вложения), который автоматически вычисляет номера контура (например, 1, 1.1, 2.1.2 и т. Д. c.) И уровень заголовка HTML. Когда блоки добавляются или переупорядочиваются, мы используем wp.data.subscribe, чтобы вычислить новый номер контура и уровень заголовка и передать их в setAttributes(). Это работало до WordPress 5.3.

Начиная с версии 5.3 вызов setAttributes() приводит к тому, что редактор WordPress обрабатывает sh и приводит к «Uncaught RangeError: Превышен максимальный размер стека вызовов», за которым следует «Вышеуказанная ошибка произошло в компоненте <InnerBlocks>: сообщения в консоли. Комментирование вызова setAttributes() останавливает процесс sh, но мы теряем изменения нумерации и изменения заголовка для всех блоков контуров.

Я просто изучаю React через Гутенберга и не уверен, что проблема заключается в вызове setAttributes() внутри wp.data.subscribe или если причиной проблемы является изменение в WordPress 5.3.

const unsubscribe = subscribe(() => {

    ... // code to calculate block hierarchy 

    let updatedAttributes = {
        headingNumber: (blockIndex).toString() + '.',
        headingLevel: '2',
    };

    setAttributes( updatedAttributes );

}); 
...