无法覆盖MediaPlaceHolder组件

时间:2019-08-13 作者:Udit Desai

我正在尝试重写的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;

但上面的代码在浏览器中无限加载块编辑器页面。页面从不停止加载。选项卡中的加载微调器不断旋转。

我的直觉是,它将进入某种无限循环。但我不知道它到底出了什么问题。有人能帮忙吗?

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

wp.blockEditor.MediaPlaceholder 不是类,而是古腾堡/块编辑器的媒体占位符文件中的以下代码:

export default compose(
    applyWithSelect,
    withFilters( \'editor.MediaPlaceholder\' ),
)( MediaPlaceholder );
因此,一个无限循环作为滤波器不断应用。

相关推荐