我无法覆盖MediaPlaceholder组件的props。作为一个测试,我只是尝试将disablemediabubuttons属性设置为true,但它的值没有改变,也没有错误消息。
下面是我试过的代码:
const MyMediaPlaceholder = createHigherOrderComponent( (MediaPlaceholder) => {
return (props) => {
props.disableMediaButtons = true;
console.log(props);
return wp.element.createElement(
MediaPlaceholder,
props,
);
};
}, 'MyMediaPlaceholder' );
addFilter(
'editor.MediaPlaceholder',
'my/MediaPlaceholder',
MyMediaPlaceholder
);
我已经找到了覆盖道具的方法,所以我分享它。道具不能直接覆盖,所以我使用Object.assign()去做吧。
下一行:
props.disableMediaButtons = true;
应该改成:
props = Object.assign({}, props, { disableMediaButtons: true });