Skip to content

createSwitch

Functions

createSwitch()

createSwitch<T>(options): [() => T, SwitchControls<T>]

创建开关和控制器

Type parameters

ParameterValue
Tboolean

Parameters

ParameterTypeDescription
optionsCreateSwitchOptions<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

ParameterValue
Tboolean

Properties

PropertyTypeDescription
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

PropertyTypeDescription
close() => void-
off(callback) => void-
offAll() => void-
on(callback) => NoopFn-
open() => void-
reset() => void-
toggle(value?) => void-