我正在尝试为Gutenberb构建一个自定义块。它是一个轮播,并使用子块(图像)。我正在尝试寻找一种方法来找出内部要创建的图像块,以便为转盘相应地创建幻灯片。
为此,我正在考虑从每个图像块中获取图像URL并将其存储在数组中,这样我就可以映射整个数组以创建每个幻灯片,但是我不知道如何访问子块的网址值。
有什么想法吗?
答案 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。