Мы создали блок контура (используя 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 );
});