古登堡动态块不存储属性

时间:2020-12-18 作者:Benjamin Antoni Andersen

我的目标是dynamic 古腾堡街区开始工作。为了找出我的错误所在,我将其还原为static 阻止以检查属性是否正确保存,并且工作正常。我还注释了php方面的内容,这样就不会影响任何东西。

测试的第二步:通过从save函数返回null,将块变为动态块。我的目标只是看看编辑器是否存储了属性,我还不关心前端。结果:It doesn\'t 我不知道为什么不。

文件上写着:“;对于许多动态块,save回调函数应返回为null,这告诉编辑器仅将块属性保存到数据库“参考资料”;那么它应该拯救他们?我不明白。

这是静态代码working perfectly:

registerBlockType( \'slp/signup\', {
    title: __( \'Sign Up\' ),
    icon: \'email\',
    category: \'layout\',
    keywords: [
        __( \'sign up\' ),
        __( \'form\' )
    ],
    attributes: {
        title: {
            type: \'array\',
            source: \'children\',
            selector: \'h2\',
        },
    },
    edit( props ) {

        function setTitle( content ) {
            props.setAttributes( { title: content } );
        }

        return (
            <RichText
                tagName="h2"
                value={ props.attributes.title }
                formattingControls={ [ \'bold\', \'italic\' ] } 
                onChange={ setTitle }
                placeholder={ __( \'Heading...\' ) }
            />
        );
    },
    save( props ) {
        return <h2>{props.attributes.title}</h2>;
    }
} );
以下是我为使其动态化所做的唯一更改:

save( props ) {
    return null;
}
此时没有存储任何属性,当我更新编辑器时,所有内容都是空的。(当我尝试用php输出它时,它会返回一个空数组。)

1 个回复
最合适的回答,由SO网友:Hardeep Asrani 整理而成

使用动态块时,不能使用从块的HTML标记中获取数据的属性。属性选择器查看属性的保存函数的HTML,而不是编辑函数。

您可以简单地使用类型:“string”。希望这有帮助!

相关推荐