componentDidMount не вызывается - PullRequest
       21

componentDidMount не вызывается

0 голосов
/ 20 октября 2019

Простой компонент, используемый в блоке Гутенберга как при редактировании, так и при сохранении: в этом упрощенном примере он просто устанавливает переменную состояния в componentDidMount, а затем выполняет render (), подбирает его и показывает. Это работает, как и ожидалось, в серверной части, но когда я пытаюсь просмотреть страницу, render () не видит переменную, ее там нет. Пригладить проблему становится все труднее, потому что console.logs не отображаются в консоли в передней части. Я не знаю, является ли это частью той же проблемы или нет. Мысли приветствуются.

( function( blocks, element ) {

    blocks.registerBlockType( 'daisy/grid-view', {
        title: 'Daisy: Single Image View',
        icon: 'universal-access-alt',
        category: 'common',

        attributes: {
            pid         : {type: 'number'},
        },

        edit: function( props ) {

        return( 
        <p>
            <DaTest></DaTest>
        </p>)

        },
        save: function( props ) {

            console.log( "save")
            return (

                <p>xxx
                    <DaTest></DaTest>
                </p>
            )
        },
    } );
}(
    window.wp.blocks,
    window.wp.element,
    window.wp.editor

) );

-

class DaTest extends React.Component {

    render() {
        console.log( "in test")

        var xxx = JSON.stringify( this.state )
        return  (
            <div>
                inside DaTest Render [{xxx }] // xxx shows as {}
            </div>
        )
    }
    componentDidMount() {
        this.setState( {aaa : "aaa" })
    }
}

1 Ответ

0 голосов
/ 21 октября 2019

Похоже, я неправильно понял, как работают блоки в Гутенберге. Это обработанный вывод, который передается в save, интерфейс никогда не видит компонент.

Переосмысление.

...