我正在尝试重写的MediaPlaceholder组件wp.blockEditor.MediaPlaceholder
使用可用筛选器editor.MediaPlaceholder
. 下面是我的代码片段:
// plugin.js
import MyMediaPlaceholder from \'./media-placeholder\';
wp.hooks.addFilter(
\'editor.MediaPlaceholder\',
\'my/plugin/replace-media-placeholder\',
() => MyMediaPlaceholder
);
// media-placeholder.js
const {
blockEditor: { MediaPlaceholder },
element: { Fragment }
} = wp;
class MyMediaPlaceholder extends MediaPlaceholder {
// Basically, I want to disable the Drag\'n\'Drop feature of MediaPlaceholder component.
renderDropZone() {
return ( <Fragment /> );
}
}
export default MyMediaPlaceholder;
但上面的代码在浏览器中无限加载块编辑器页面。页面从不停止加载。选项卡中的加载微调器不断旋转。
我的直觉是,它将进入某种无限循环。但我不知道它到底出了什么问题。有人能帮忙吗?
最合适的回答,由SO网友:Peter Wilson 整理而成
wp.blockEditor.MediaPlaceholder
不是类,而是古腾堡/块编辑器的媒体占位符文件中的以下代码:
export default compose(
applyWithSelect,
withFilters( \'editor.MediaPlaceholder\' ),
)( MediaPlaceholder );
因此,一个无限循环作为滤波器不断应用。