Простой компонент, используемый в блоке Гутенберга как при редактировании, так и при сохранении: в этом упрощенном примере он просто устанавливает переменную состояния в 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" })
}
}