此功能仍处于实验阶段。“实验性”意味着这是早期实现,可能会发生重大且破坏性的变更。
UnitControl 允许用户设置数值以及单位(例如 px)。
用法
import { useState } from 'react';
import { __experimentalUnitControl as UnitControl } from '@wordpress/components';
const Example = () => {
const [ value, setValue ] = useState( '10px' );
return <UnitControl onChange={ setValue } value={ value } />;
};
属性
disableUnits: boolean
如果为 true,则隐藏单位 <select>。
- 必需:否
- 默认值:
false
isPressEnterToChange: boolean
如果为 true,必须按下 ENTER 键才能触发 onChange。启用后,在通过 Tab 键切换焦点时(onBlur)也会触发更改。
- 必需:否
- 默认值:
false
isResetValueOnUnitChange: boolean
如果为 true,且所选单位提供了 default 值,则在更改单位时会设置该值。
- 必需:否
- 默认值:
false
isUnitSelectTabbable: boolean
确定单位 <select> 是否可以通过 Tab 键聚焦。
- 必需:否
- 默认值:
true
label: string
如果添加了此属性,将使用 label 属性的内容生成标签。
- 必需:否
labelPosition: string
标签的位置(top、side、bottom 或 edge)。
- 必需:否
onBlur: FocusEventHandler< HTMLInputElement | HTMLSelectElement >
当数量或单位输入框触发 blur 事件时调用的回调函数。
- 必需:否
onFocus: FocusEventHandler< HTMLInputElement | HTMLSelectElement >
当数量或单位输入框触发 focus 事件时调用的回调函数。
- 必需:否
onChange: UnitControlOnChangeCallback
当 value 发生变化时的回调函数。
- 必需:否
onUnitChange: UnitControlOnChangeCallback
当 unit 发生变化时的回调函数。
- 必需:否
size: string
调整输入框的大小。
可用尺寸包括:default、small
- 必需:否
- 默认值:
default
unit: string
已弃用:当前单位值。
建议通过 value 属性提供带有单位的值。
示例:
<UnitControl value="50%" />
- 必需:否
units: WPUnitControlUnit[]
可用单位集合。
- 必需:否
示例:
import { useState } from 'react';
import { __experimentalUnitControl as UnitControl } from '@wordpress/components';
const Example = () => {
const [ value, setValue ] = useState( '10px' );
const units = [
{ value: 'px', label: 'px', default: 0 },
{ value: '%', label: '%', default: 10 },
{ value: 'em', label: 'em', default: 0 },
];
return (
<UnitControl onChange={ setValue } value={ value } units={ units } />
);
};
如果定义了 default 值(在上述示例中,% 的值为 10),则在更改单位时会将其设置为新的 value。这在某些场景下非常有用,例如从 px 更改为 vh 时可能会导致结果发生巨大变化。
value: number | string
当前值。如果以字符串形式传递,将根据该值推断当前单位。
例如,value 为 50% 会将当前单位设置为 %。
示例:
<UnitControl value="50%" />
- 必需:否