我有这个组件'PostTitle',它可以获取页面标题并在您编辑在编辑器中工作的主页标题时进行更改,但是我无法使其显示在前端?不知道我在做什么错。
更新
我添加了一个功能来更新'title'属性,但问题是它仅在编辑时触发。因此,如果您不单击编辑器中的组件,它将不会更新'title'属性。无论如何,有没有将其放入保存区域?
registerBlockType( 'gutenberg/title', {
title: 'updating text',
icon: 'universal-access-alt',
category: 'layout',
attributes: {
title: {
type: 'array',
source: 'children',
selector: 'h1',
},
},
edit( { attributes } ) {
const { title } = attributes;
const GetTitle = props => props.title;
//I'm not sure how to get this to update the title attribute
const selectTitle = withSelect(select => ({
title: select("core/editor").getDocumentTitle(),
}));
const PostTitle = selectTitle(GetTitle);
//update function that fire when you edit the component
function updateTitle() {
const pagetitle = select("core/editor").getDocumentTitle();
setAttributes( { title: pagetitle } );
console.log(pagetitle);
}
updateTitle();
const controls = (
<Fragment>
.....
</Fragment>
);
return (
<Fragment>
{ controls }
<PostTitle/>
</Fragment>
);
},
save( { attributes } ) {
const { title } = attributes;
return (
<div>
<RichText.Content tagName="h1" className="title" value={ title } />
</div>
);
},
} );
任何帮助将不胜感激