Dans un bloc de Gutenberg, j'essaie de lire la valeur de la propriété default de l'attribut, afin de pouvoir trouver dans la routine de transformation (vers un autre type de bloc) si un attribut donné a toujours la valeur par défaut.
Avec this.props.attributes
, je ne vois que les valeurs des attributs, mais j'ai besoin de leurs "métadonnées".
Un exemple de déclaration dans registerBlockType / ressemblerait à ceci:
attributes: {
amount: {
type: 'integer',
default: 1
},
// ...
}
Je viens de découvrir que je peux simplement définir une variable lorsque j'enregistre le bloc
var myBlock = registerBlockType( ... )
puis à l'intérieur de la fonction anonyme pour "transformer", je peux accéder aux attributs comme
myBlock.attributes
Je ne sais pas s'il existe un moyen direct d'inspecter la valeur par défaut d'un attribut, mais vous pouvez y parvenir indirectement en stockant la valeur par défaut dans une variable.
Vous pouvez ensuite le référencer depuis l'intérieur de l'objet attribut et depuis les fonctions edit
et save
.
par exemple. (non testé)
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>
);
}
} );
Ce n'est pas idéal mais devrait fonctionner comme prévu.