createSwitch
Functions
createSwitch()
createSwitch<
T
>(options
): [() =>T
,SwitchControls
<T
>]
创建开关和控制器
Type parameters
Parameter | Value |
---|---|
T | boolean |
Parameters
Parameter | Type | Description |
---|---|---|
options | CreateSwitchOptions <T > | 配置项 |
Returns
[() => T
, SwitchControls
<T
>]
Example
ts
const [isCanceled, cancelControls] = createSwitch()
const onToggle = (val) => {
console.log(`当前是${val ? '开启' : '关闭'}状态`)
}
// 注册回调句柄
cancelControls.on(onToggle)
isCanceled()
// => false
cancelControls.toggle()
isCanceled()
// => true
// 控制台:当前是开启状态
// 移除回调句柄
cancelControls.off(onToggle)
cancelControls.toggle()
isCanceled()
// => false
cancelControls.open()
isCanceled()
// => true
cancelControls.close()
isCanceled()
// => false
cancelControls.open()
// 还原为初始状态
cancelControls.reset()
isCanceled()
// => false
Interfaces
CreateSwitchOptions<T>
Type parameters
Parameter | Value |
---|---|
T | boolean |
Properties
Property | Type | Description |
---|---|---|
closeValue? | T | 关闭时的值 Default false |
initialValue? | T | 初始值 Default false |
once? | boolean | 一次性开关,如果设为 true ,则在第一次切换之后切换无效,直到 reset 被调用。Default false |
openValue? | T | 打开时的值 Default true |
SwitchControls<T>
Type parameters
Parameter |
---|
T |
Properties
Property | Type | Description |
---|---|---|
close | () => void | - |
off | (callback ) => void | - |
offAll | () => void | - |
on | (callback ) => NoopFn | - |
open | () => void | - |
reset | () => void | - |
toggle | (value ?) => void | - |