如何重写组件的props ?



我无法覆盖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 });

最新更新