wordpress - 如何覆盖组件的道具?
问题描述
我无法覆盖 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 });
推荐阅读
- jenkins - Jenkins 通过 SSH 发布:如何在源文件中提供 windows 目录(例如:E:\Test\SFTP\In\Test.txt),在远程目录中提供远程 UNIX 目录
- swift - AR Kit 识别和播放多个视频
- python - Python:创建带有日期的字典时语法无效
- migration - 将多个课程从一台服务器迁移到另一台 Moodle 服务器
- elasticsearch - 建立graphDB elasticsearch连接器
- data-science - IsolationForest,转换数据
- typo3 - 首次在 Powermail 中提交后无法设置重定向页面
- javascript - React Context API 的 setter 工作很慢
- python - 如何使用 python pandas 在单个 csv 单元格中打包多个列表值
- python - 使用 Juypter Notebook 时如何释放 RAM?