UNPKG

@td-design/rn-hooks

Version:

从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率

29 lines (26 loc) 1.21 kB
import { __read } from '../_virtual/_tslib.js'; import { useState } from 'react'; import useMemoizedFn from '../useMemoizedFn/index.js'; /** * 用于在两个状态值间切换的 Hook。 * @param defaultValue 默认值,默认为false * @param reverseValue 切换值,可以不传,不传的时候值是对默认值取非 * @returns */ function useToggle(defaultValue, reverseValue) { if (defaultValue === void 0) { defaultValue = false; } var _a = __read(useState(defaultValue), 2), state = _a[0], setState = _a[1]; var reverseValueOrigin = (reverseValue === undefined ? !defaultValue : reverseValue); var toggle = function () { return setState(function (s) { return (s === defaultValue ? reverseValueOrigin : defaultValue); }); }; var set = function (value) { return setState(value); }; var setLeft = function () { return setState(defaultValue); }; var setRight = function () { return setState(reverseValueOrigin); }; var actions = { toggle: useMemoizedFn(toggle), set: useMemoizedFn(set), setLeft: useMemoizedFn(setLeft), setRight: useMemoizedFn(setRight), }; return [state, actions]; } export { useToggle as default };