我正在尝试制作一个在编辑器上有3个文本输入的古腾堡块。然后在前端显示一些段落/句子。
如果我尝试放置2段->更新->然后重新加载页面,我会遇到此错误。我这样假设是因为它没有为段落文本输入保存2的值
我在谷歌上搜索了很多次,但没有找到任何有用的东西。我试图使用源代码/选择器,但我很确定我一开始就错了。
Block validation: Block validation failed for `cgb/block-test` ({name: "cgb/block-test", icon: {…}, attributes: {…}, keywords: Array(3), save: ƒ, …}).
Content generated by `save` function:
<div paragraphs="1" class="wp-block-cgb-block-test">1</div>
Content retrieved from post body:
<div paragraphs="2" class="wp-block-cgb-block-test">2</div>
。
attributes: {
paragraphs: {
type: \'integer\',
default: 1,
source: \'paragraphs\',
selector: \'paragraphs\',
}
},
edit: ( props ) => {
console.log(props);
const { attributes, setAttributes } = props;
return (
el( \'div\', { className: props.className },
el( TextControl, {
label: \'How many paragraphs?\',
value: props.attributes.paragraphs,
onChange: ( value ) => {
setAttributes( { paragraphs: value } );
}
})
)
);
},
save: ( props ) => {
const { attributes } = props;
return el(\'div\', {\'paragraphs\': attributes.paragraphs}, attributes.paragraphs);
},
} );
最合适的回答,由SO网友:SnappleMan 整理而成
我想出来了。对其他人来说,我就是这样做的。
我的保存功能以结束
return el(\'div\', {},
el( \'p\', {className: \'paragraphs\'}, attributes.paragraphs ),
)
我把属性改成了这个。
paragraphs: {
type: \'string\',
default: 1,
source: \'html\',
selector: \'.paragraphs\',
},
然后是我的风格。scss我只有一个显示器:无。因为编辑器选项不应该显示在前端。