vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
41 lines (39 loc) • 915 B
JavaScript
import { useCallback, useState } from 'react';
/**
* @public
*/
/**
* 布尔值切换器。
*
* @public
* @param initialValue 初始值
* @returns 返回结果和操作
* @example
* ```typescript
* const [value, toggle] = useToggle(false) // value: false
* toggle() // value: true
* toggle.set(false) // value: false
* toggle.true() // => value: true
* toggle.false() // => value: false
* ```
*/
export function useToggle(initialValue) {
var _useState = useState(initialValue),
value = _useState[0],
setValue = _useState[1];
var toggle = useCallback(function () {
setValue(function (value) {
return !value;
});
}, []);
toggle.set = useCallback(function (value) {
setValue(value);
}, []);
toggle.true = useCallback(function () {
setValue(true);
}, []);
toggle.false = useCallback(function () {
setValue(false);
}, []);
return [value, toggle];
}