Гутенберг setAttributes не обновляет мою область редактирования - PullRequest
1 голос
/ 02 мая 2019

Как я могу сделать свои элементы HTML в Гутенберге привязанными к массиву / объекту?

Привет, я сейчас программирую блок Гутенберга и просто хотел привязать объект к моему блоку, но он не обновляется. В настоящее время у меня есть список

и я хочу добавить его автоматически, если я нажму "Click me!" Кнопка.

Что он делает ... Если я нажимаю на эту кнопку, он помещает новый элемент в массив, но элементы

не добавляются. Если я щелкаю прочь (если блок теряет фокус), элементы добавляются.

Что я сделал не так?

edit: props => {
        const { setAttributes, attributes } = props;
        let slides = props.attributes.slides;

        const addSlide = function(event){
            slides.push({ title : 'new' });
            setAttributes({ slides: slides });
        }




        return [
            <InspectorControls key="inspector">
                <PanelBody
                    title={'Slides'}
                    initialOpen={true}
                >

                {slides.map((slide, i) =>
                    <li key={i}>
                    {slide.title}
                    </li>
                )}


                <Button isPrimary onClick={addSlide}>
                    Click me!
                </Button>

                </PanelBody>
            </InspectorControls>,
            <div className={ props.className } key='richtext'>

                {slides.map((slide, i) =>
                    <li key={i}>
                    {slide.title}
                    </li>
                )}

                <Button isPrimary onClick={addSlide}>
                    Click me!
                </Button>

            </div>
        ];
    }

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

...