如何覆盖组件的道具?
How to override the props of a component?
我无法覆盖 MediaPlaceholder 组件的属性。作为测试,我只是尝试将 disableMediaButtons 属性 设置为 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 });
我无法覆盖 MediaPlaceholder 组件的属性。作为测试,我只是尝试将 disableMediaButtons 属性 设置为 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 });