首先在编辑函数中使用下拉选项声明一个变量-
const linkOptions = [
{ value: \'small\', label: __( \'Small\' ) },
{ value: \'normal\', label: __( \'Normal\' ) },
{ value: \'medium\', label: __( \'Medium\' ) },
{ value: \'large\', label: __( \'Large\' ) },
];
我假设您将在侧栏面板中显示下拉选项。以下是panelbody的代码以及如何获取下拉值-
<PanelBody>
<SelectControl
label={ __( \'Size\' ) }
value={ size }
options={ linkOptions.map( ({ value, label }) => ( {
value: value,
label: label,
} ) ) }
onChange={ ( newSize ) => { setAttributes( { size: newSize } ) } }
/>
</PanelBody>
这将在Inspector区域显示一个下拉面板,请注意,我正在使用(ES6)映射函数来迭代值和相应的标签。现在,出现了RichText组件,您可以在其中调用HTML节点-
<RichText
tagName={ \'span\' }
placeholder={ __( \'Enter Text\' ) }
value={ text }
onChange={ (text) => setAttributes( { text: text } ) }
formattingControls={ [ \'bold\', \'italic\', \'strikethrough\' ] }
className={`button-${size}`} /*ES6 Template Literals*/
isSelected={ isSelected }
keepPlaceholderOnFocus
/>
请注意,具体取决于下拉选项。按钮大小附加到HTML节点类名。现在在编辑器样式表中,添加几个css类和属性-
button-small
button-normal
button-medium
button-large
对于保存功能-
const save = ( props ) => {
const { size } = props.attributes;
return (
<div className={ `ubutton-${size}` }>
</div>
);
}