古腾堡 .updateBlock

Wordpress Gutenberg .updateBlock

我相信有一种方法可以满足我的需要。但是我需要一个使用它的例子: https://developer.wordpress.org/block-editor/data/data-core-editor/#updateBlockAttributes 这怎么可能?有人有吗?

您可以阅读 Block Editor Handbook. Here is an live example from my own code at a new slider block for wordpress 中关于函数的(非常小的)文档。它使用 withDispatch 高阶组件为组件提供动作。

withDispatch( ( dispatch, ownProps, registry ) => {

  return {
    updateEditable( isEditing ) {
      const { clientId, setAttributes } = ownProps;
      const { getBlockOrder } = registry.select( 'core/block-editor' );
      const { updateBlockAttributes } = dispatch( 'core/block-editor' );

      //update own isEditable
      setAttributes( { isEditing } );

      const innerBlockIds = getBlockOrder( clientId );
      innerBlockIds.forEach( ( innerBlockId ) => {
        updateBlockAttributes( innerBlockId, {
         isEditing,
        } );
      } );
    },
  };
} )

要使用 wordpress 数据模块,向客户端提供有关编辑器或块的数据,您还可以使用 wp.data-模块。在后端时,您可以例如转到浏览器控制台,然后键入 wp.data.dispatch( 'core/editor' ).updateBlockAttributes() 以测试函数的作用。

您还可以查看 gutenberg github 存储库。核心块也使用 updateBlockAttributes。例如。在 columns

如果您想了解有关 gutenberg 中数据处理的更多信息,可以阅读这个非常好的 blob post,它介绍了 wp.data api 以及 [=15 的概念=] 和 withDispatch 高阶组件。