我有一个使用InnerBlocks包含其他块的块类型,其输出由InnerBlocks模板生成(类似于列核心块)。我希望能够将其中一个块更改为另一种块类型(已定义转换的一种),但是当我这样做时,内容将被删除。
有没有办法做到这一点?
以类推的方式,如果核心列块具有子块“ column-third”和“ column-half”,那么有一种方法可以将两个“ column-half”更改为三个“ column-third”不会丢失数据?
为进一步推论,假设我克隆了核心columns和column块,并按如下方式修改了column块:
模板生成功能:
| A |
1 | Cat |
2 | |
3 | Tiger |
4 | Lion |
5 | Lynx |
6 | |
7 | |
| A |
1 | K9 |
2 | |
3 | Wolf |
4 | Fox |
5 | Dog |
6 | Big Dog |
7 | Good Boi|
和编辑功能中的RangeControl:
var childBlockName = 'core/column';
const getColumnsTemplate = memoize( ( columns ) => {
return times( columns, () => [ childBlockName ] );
} );
core / column和coreclone / column相同。在此示例中,当我更改列数时,模板中的子块类型也会更改。 core / column块不会转换为coreclone / column块,它们只会被擦除,而会创建新的coreclone / column块。我希望将它们转换为coreclone / column块,而不会擦除内容。