UNPKG

@td-design/rn-hooks

Version:

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

31 lines (27 loc) 1.19 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var react = require('react'); var index = require('../useMemoizedFn/index.js'); /** * 用于在两个状态值间切换的 Hook。 * @param defaultValue 默认值,默认为false * @param reverseValue 切换值,可以不传,不传的时候值是对默认值取非 * @returns */ function useToggle(defaultValue, reverseValue) { if (defaultValue === void 0) { defaultValue = false; } var _a = _tslib.__read(react.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: index(toggle), set: index(set), setLeft: index(setLeft), setRight: index(setRight), }; return [state, actions]; } module.exports = useToggle;