如何访问古登堡属性的“默认”属性

时间:2018-05-13 作者:chris_cm

在古腾堡块中,我尝试读取属性的默认属性值,以便在转换例程(到另一块类型)中找出是否有任何给定属性仍具有默认值。

具有this.props.attributes 我只看到属性的值,但我需要它们的“元数据”。

中的一个示例声明registerBlockType 看起来像:

attributes: {
    amount: {
      type: \'integer\',
      default: 1
    },
// ...
}

2 个回复
最合适的回答,由SO网友:chris_cm 整理而成

我刚刚发现,我可以在注册块时简单地定义一个变量

var myBlock = registerBlockType( ... )
然后在“transform”的匿名函数中,我可以访问以下属性

myBlock.attributes

SO网友:dgwyer

我不确定是否有直接的方法来检查属性的默认值,但可以间接实现这一点的一种方法是将默认值存储在变量中。

然后可以从属性对象内部和editsave 功能。

e、 g.(未测试)

const amountDefault = 1;

registerBlockType( \'test/myblock\', {
    title: __( \'Test Block\' ),
    attributes: {
        amount: {
            type: \'integer\',
            default: amountDefault 
        }
    },
    edit: function( props ) {
        const { attributes: { amount } } = props;

        return (
            <div className={ props.className }>
                <h3>Editor</h3>
                The default amount is: {amountDefault}
                The actual amount is: {amount}
            </div>
        );
    },
    save: function( props ) {
        const { attributes: { amount } } = props;
        return (
            <div>
                <h3>Editor</h3>
                The default amount is: {amountDefault}
                The actual amount is: {amount}
            </div>
        );
    }
} );
这并不理想,但应按预期工作。

结束

相关推荐