我正在尝试使自定义列阻止,因为gutenberg使用的wordpress默认不是我所需要的。
因此,我查看了它的工作方式,它使用带有布局定义的InnerBlocks块,但是无法为列指定html标签和类,因此对我来说毫无用处。
然后我决定使用map循环出列,效果很好,然后我在每列内部添加了InnerBlocks组件,以允许向该列插入其他块,但是问题是在每列中InnerBlocks的内容是共享的,所以我试图将每个InnerBlock和column的键属性设置为唯一,并且它们的内容仍然共享(不,我不使用共享块)。
好像gutenberg在每一列中都使用了相同的InnerBlocks实例。
我正在尝试构建一个块类型,您可以在其中动态添加列,并在每列中添加带有一些信息的“卡片”。
为了让我知道我在做什么,这是edit函数的返回:
<section className="infonav">
<div className="infonav__container">
<div>
<button onClick={onAddBox}>{__('Add column', 'zmg-blocks')}</button>
</div>
<div className="infonav__row">
{[...new Array(columns).keys()].map((item, index) => {
return (
<div className="infonav__row__col" key={"info_cols"+index}>
<div>
<button onClick={onRemoveBox.bind(index)}>
{__('Remove', 'zmg-blocks')}
</button>
</div>
<InnerBlocks key={"info_boxes"+index}/>
</div>
);
})}
</div>
</div>
</section>
谢谢
最佳答案
好像gutenberg内部块只能在一个块中使用一次
您需要与该块一起创建另一个自定义块(仅用于列),该块也在内部使用Innerblock,以便其他块可以嵌套在其中。
您可以使用allowedBlocks只允许您在此块中的自定义列
关于wordpress - 古腾堡-一种块状类型的多个InnerBlocks,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51072386/