@td-design/rn-hooks
Version:
从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率
30 lines (26 loc) • 922 B
JavaScript
;
var _tslib = require('../_virtual/_tslib.js');
var react = require('react');
var index = require('../useToggle/index.js');
/**
* 优雅的管理 boolean 状态的 Hook。
* @param defaultValue 默认值为false
* @returns
*/
function useBoolean(defaultValue) {
if (defaultValue === void 0) { defaultValue = false; }
var _a = _tslib.__read(index(defaultValue), 2), state = _a[0], _b = _a[1], toggle = _b.toggle, set = _b.set;
var actions = react.useMemo(function () {
var setTrue = function () { return set(true); };
var setFalse = function () { return set(false); };
return {
toggle: toggle,
set: function (v) { return set(!!v); },
setTrue: setTrue,
setFalse: setFalse,
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return [state, actions];
}
module.exports = useBoolean;