如何在古腾堡中访问内部块的值?

时间:2019-07-28 01:17:37

标签: wordpress-gutenberg gutenberg-blocks project-gutenberg

我正在尝试为Gutenberb构建一个自定义块。它是一个轮播,并使用子块(图像)。我正在尝试寻找一种方法来找出内部要创建的图像块,以便为转盘相应地创建幻灯片。

为此,我正在考虑从每个图像块中获取图像URL并将其存储在数组中,这样我就可以映射整个数组以创建每个幻灯片,但是我不知道如何访问子块的网址值。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以阅读getBlock function in the Block Editor Handbook上的(很小的)文档。您应该使用withDispatch高阶组件来为组件(块)提供操作。

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

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

      //get all innerBlockIds
      const innerBlockIds = getBlockOrder( clientId );
      innerBlockIds.forEach( ( innerBlockId ) => {
        console.log( getBlock( innerBlockId ) );
      } );
    },
  };
} )

要使用WordPress数据模块(该模块向客户端提供有关编辑器或块的数据),您还可以使用wp.data-Module。例如,在Gutenberg编辑器的后端视图中,您可以转到浏览器控制台,然后键入wp.data.select( 'core/block-editor' ).getBlock(<blocks-client-id>)以测试该功能的作用。

您也可以在Gutenberg GitHub存储库中查看。 Core Blocks also use these function, for example in columns