UNPKG

@td-design/rn-hooks

Version:

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

43 lines (40 loc) 1.16 kB
import { __read } from '../_virtual/_tslib.js'; import { useState } from 'react'; import useMemoizedFn from '../useMemoizedFn/index.js'; /** * 一个可以管理 Set 类型状态的 Hook。 * @param initialValue 初始值 * @returns */ function useSet(initialValue) { var getInitValue = function () { return new Set(initialValue); }; var _a = __read(useState(getInitValue), 2), set = _a[0], setSet = _a[1]; var add = function (key) { if (set.has(key)) { return; } setSet(function (prevSet) { var temp = new Set(prevSet); temp.add(key); return temp; }); }; var remove = function (key) { if (!set.has(key)) { return; } setSet(function (prevSet) { var temp = new Set(prevSet); temp.delete(key); return temp; }); }; var reset = function () { return setSet(getInitValue()); }; var actions = { add: useMemoizedFn(add), remove: useMemoizedFn(remove), reset: useMemoizedFn(reset), }; return [set, actions]; } export { useSet as default };