我正在尝试使自定义列阻止,因为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/

10-10 06:53