UNPKG

@td-design/rn-hooks

Version:

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

45 lines (41 loc) 1.22 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var react = require('react'); var index = require('../useMemoizedFn/index.js'); /** * 一个可以管理 Map 类型状态的 Hook。 * @param initialValue 初始值 * @returns */ function useMap(initialValue) { var getInitValue = function () { return new Map(initialValue); }; var _a = _tslib.__read(react.useState(getInitValue), 2), map = _a[0], setMap = _a[1]; var set = function (key, entry) { setMap(function (prev) { var temp = new Map(prev); temp.set(key, entry); return temp; }); }; var setAll = function (newMap) { setMap(new Map(newMap)); }; var remove = function (key) { setMap(function (prev) { var temp = new Map(prev); temp.delete(key); return temp; }); }; var reset = function () { return setMap(getInitValue()); }; var get = function (key) { return map.get(key); }; var actions = { set: index(set), setAll: index(setAll), remove: index(remove), reset: index(reset), get: index(get), }; return [map, actions]; } module.exports = useMap;