У меня есть тип блока, который содержит другие блоки, использующие InnerBlocks, с выводом, генерируемым шаблоном InnerBlocks (аналогично базовому блоку столбцов).Я хочу иметь возможность изменить один из блоков на другой тип блока (тот, у которого определено преобразование), но когда я это сделаю, содержимое будет стерто.
Есть ли способ сделать это?
По аналогии, если бы в блоке основных столбцов имелись подблоки «столбец-третий» и «столбец-половина», был бы способ перехода с двух «столбец-половина» на три столбца.третьи без потери данных?
Чтобы расширить эту аналогию, предположим, что я сделал клоны блоков колонок и колонок , и я модифицируюстолбцы блокируются следующим образом:
Функция генерации шаблона:
var childBlockName = 'core/column';
const getColumnsTemplate = memoize( ( columns ) => {
return times( columns, () => [ childBlockName ] );
} );
и RangeControl в функции редактирования:
<RangeControl
label={ __( 'Columns' ) }
value={ columns }
onChange={ ( nextColumns ) => {
childBlockName = 'coreclone/column';
setAttributes( {
columns: nextColumns,
} );
} }
min={ 2 }
max={ 6 }
/>
core / column и coreclone / column являютсяидентичны.В этом примере, когда я изменяю количество столбцов, тип дочернего блока изменяется в шаблоне.Блоки core / column не преобразуются в блоки coreclone / column, они просто стираются и создаются новые блоки coreclone / column.Я хотел бы, чтобы они были преобразованы в блоки coreclone / column без стирания содержимого.