Стили, которые не обновляются в редакторе Гутенберга - PullRequest
0 голосов
/ 28 февраля 2019

Я создал блок Гутенберга, и часть выходных данных - установить стиль корневого элемента.У меня проблемы с атрибутом стиля этого корневого элемента, который не обновляется динамически в редакторе Гутенберга при его изменении.Моя функция редактирования выглядит следующим образом:

    edit: function( props )
    {
        [...] // initialising some variables

        return el(
            wp.element.Fragment,
            {},
            [...], // InspectorControls, etc.
            el(
                'div',
                {
                    className: 'cms-container ' + getClassName(attr),
                    style: getStyles(attr),
                    state:  JSON.stringify(getStyles(attr)) 
                },
                [...] // Inner blocks, etc.
            )
        );
    },

Это прекрасно работает при загрузке страницы, но когда я изменяю то, что getStyles (attr) возвращает, пока на странице (через InspectorControls), стиль не меняется.Я даже добавил к выводу дополнительный атрибут «состояние», который изменяется, как и ожидалось, в результате получается что-то вроде следующего:

<div class="cms-container " 
    style="background-size: contain;" 
    state="{&quot;backgroundSize&quot;:&quot;cover&quot;}">

Я изменил размер фона для покрытия, которое обновляетсяв атрибуте "состояние", но не в стиле.Если бы я сохранил страницу на этом этапе, она бы правильно отображалась (как background-size: cover) при следующей загрузке страницы.

Есть ли какое-то кэширование, которое выполняет React, которого мне не хватает?

1 Ответ

0 голосов
/ 28 февраля 2019

Я закончил тем, что сделал объектную копию того, что возвращает getStyles (attr), что решило проблему:

style: $.extend(true, {}, getStyles(attr))

Я думаю, значения менялись после выхода из области видимости или что-то в этом роде.

...