gutenberg blockListBlock 过滤器块控件呈现多次
gutenberg blockListBlock filter block control renders multiple times
我不知道为什么 Gutenberg 渲染我添加的 BlockControl 3 次,以及其他不是 'core/paragraph' 的组件。
我的代码:
const filter_text_highlight_color = createHigherOrderComponent( (BlockListBlock) => {
return (props) => {
if (props.name === 'core/paragraph') {
const startEditing = () => {
console.log('hello!');
}
return ([
<BlockListBlock {...props} />,
<BlockControls>
<ToolbarButton
name="link"
icon="text-page"
title={ __('Highlight Text') }
onClick={ startEditing }
/>
</BlockControls>,
])
} else {
return (
<BlockListBlock {...props} />
)
}
}
}, 'filter_text_highlight_color'
);
addFilter(
'editor.BlockListBlock',
'bwwpcode/text-highlight-color',
filter_text_highlight_color,
)
对于发生这种情况的原因以及解决方法的任何建议,我将不胜感激。
我想通了!
BlockListBlock 不能不用于向块添加控件。该过滤器的工作原理与 BlockEdit 过滤器完全不同。
更改为 BlockEdit 过滤器后一切正常!
我不知道为什么 Gutenberg 渲染我添加的 BlockControl 3 次,以及其他不是 'core/paragraph' 的组件。 我的代码:
const filter_text_highlight_color = createHigherOrderComponent( (BlockListBlock) => {
return (props) => {
if (props.name === 'core/paragraph') {
const startEditing = () => {
console.log('hello!');
}
return ([
<BlockListBlock {...props} />,
<BlockControls>
<ToolbarButton
name="link"
icon="text-page"
title={ __('Highlight Text') }
onClick={ startEditing }
/>
</BlockControls>,
])
} else {
return (
<BlockListBlock {...props} />
)
}
}
}, 'filter_text_highlight_color'
);
addFilter(
'editor.BlockListBlock',
'bwwpcode/text-highlight-color',
filter_text_highlight_color,
)
对于发生这种情况的原因以及解决方法的任何建议,我将不胜感激。
我想通了! BlockListBlock 不能不用于向块添加控件。该过滤器的工作原理与 BlockEdit 过滤器完全不同。
更改为 BlockEdit 过滤器后一切正常!