Я пытаюсь создать блок с шаблоном InnerBlocks. Поскольку у блока есть шаблон, у блока всегда должен быть хотя бы 1 дочерний элемент. Если число дочерних элементов когда-либо достигнет 0, я хочу удалить этот блок, поскольку он будет пустым.
Проблема, с которой я сталкиваюсь, заключается в том, что значение blockCount равно 0 в течение доли секунды. когда блок создается впервые, он удаляет себя перед созданием. Это ошибка с getBlockCount, или есть способ подождать, пока шаблон заполнит InnerBlocks, прежде чем я проверю счетчик блоков?
Вот моя функция edit для справки.
edit: props => {
const { setAttributes } = props
const { className } = props.attributes
const { removeBlock } = useDispatch('core/block-editor')
const { blockCount } = useSelect(select => ({
blockCount: select('core/block-editor').getBlockCount(props.clientId)
}))
if (blockCount === 0) {
removeBlock(props.clientId)
}
return (
<div className={ className }>
<InnerBlocks
allowedBlocks={ ['my/block'] }
template={ [['my/block']] }
templateLock={ false }
renderAppender={ false }
/>
</div>
)
}