如何收听古腾堡块中的事件?

问题描述

当我的块被删除添加或重新排序时,我想做点什么。我怎样才能做到这一点?是否有某种解决方法

解决方法

当不同的事情发生时,WordPress 会触发很多事件。查看 here 以获取有关其工作原理的文档;并且有一个 list of hooks,其中一些可能对您的目的感兴趣。

,

WordPress 文档在某些方面可能严重缺乏,因此您需要进行一些挖掘以找到一些并不总是最清楚的答案。

一个关于如何“监听”来自父块的更新的简单示例可能是:

const { attributes,clientId,isSelected,className,setAttributes } = props;

  const parentClientId = select('core/block-editor').getBlockHierarchyRootClientId(clientId);

  const { data } = useSelect((select) => {
    if (parentClientId) {
      return {
        data: select('core/block-editor').getBlockAttributes(parentClientId),};
    } else {
      return null;
    }
  });

此处 data 将保存来自父块的属性。可能有更简洁的方法来解决这个问题,但希望这会为您指明正确的方向。