古登堡扩展块添加新的类名

时间:2018-05-20 作者:at least three characters

我试图通过扩展所有块来为它们添加一个额外的类名。文件:Extending Blocks

我正在使用blocks.BlockEdit 修改编辑组件。我想添加自定义类名。

到目前为止我有这个

const withClass = createHigherOrderComponent( ( BlockListBlock ) => {
    return ( props ) => {
        let wrapperProps = props.wrapperProps;
        wrapperProps = {
            ...wrapperProps,
            className: \'my-custom-class\',
        };

        return <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;
    };
}, \'withClass\' );
它通过将自定义类添加到包装器中来工作,但它正在覆盖默认的块类。是否可以在不重写的情况下附加到当前类?

1 个回复
最合适的回答,由SO网友:dgwyer 整理而成

是的,您可以通过classnames() 作用

import classnames from \'classnames\';

const withClass = createHigherOrderComponent( ( BlockListBlock ) => {
    return ( props ) => {
        let wrapperProps = props.wrapperProps;
        wrapperProps = {
            ...wrapperProps,
            className={ classnames( \'my-custom-class\', props.className ) }
        };

        return <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;
    };
}, \'withClass\' );

结束

相关推荐

WP_LOCALIZE_SCRIPT()和JavaScript命名空间

如你所知,wp_localize_script() 允许从PHP对象创建JavaScript对象。因此,在运行下面示例中的代码之后:wp_localize_script(\'my-script\', \'var_name\', $var); // This works 我们将以一个名为var_name 可在脚本中访问的my-script. 此JavaScript变量是从原始PHP变量复制而来的$var.目前一切正常。我面临的问题是:我喜欢能够分配var_name 到JavaScript命名空间