Я использую Фильтры блоков Гутенберга , чтобы попытаться добавить динамическое имя класса в компонент-оболочку блока в редакторе.
registerBlockType( name, {
title: __( 'My Block' ),
parent: [ 'myplugin/myblock' ],
category: 'common',
attributes: attributes,
edit( { attributes, setAttributes, className } ) {
const { someName } = attributes;
/* how can I pass someName from here to customClassName? */
return (
/* render something */
);
},
save( { attributes } ) {
const { someName } = attributes;
/* how can I pass someName from here to customClassName? */
return (
/* render something */
);
},
});
const customClassName = createHigherOrderComponent( ( BlockListBlock ) => {
return ( props ) => {
return <BlockListBlock { ...props } className={ someName } />;
};
}, 'customClassName' );
wp.hooks.addFilter( 'editor.BlockListBlock', 'myplugin/myblock', customClassName );
Проблема: someName
в константе customClassName
не определена.
Как передать someName
из функции редактирования или сохранения в константу customClassName
? Который будет использоваться в wp.hooks.addFilter
.
Примечание: я не могу добавить wp.hooks.addFilter
или customClassName
непосредственно в функцию редактирования или сохранения. Это вызовет повторение.