UNPKG

@gdjiami/hooks

Version:

react hooks for mygzb.com

33 lines (32 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); /* tslint:disable:no-any */ var react_1 = require("react"); /** * 在组件挂载时执行异步操作 * @deprecated */ function useAsyncOnMount(fn, inputs) { if (inputs === void 0) { inputs = []; } var _a = tslib_1.__read(react_1.useState(true), 2), loading = _a[0], setLoading = _a[1]; var _b = tslib_1.__read(react_1.useState(undefined), 2), error = _b[0], setError = _b[1]; var _c = tslib_1.__read(react_1.useState(undefined), 2), value = _c[0], setValue = _c[1]; var _d = tslib_1.__read(react_1.useState(0), 2), retryCount = _d[0], forceRetry = _d[1]; var retry = react_1.useCallback(function () { forceRetry(function (s) { return s + 1; }); }, []); react_1.useEffect(function () { setError(undefined); setLoading(true); fn().then(function (val) { setValue(val); setLoading(false); }, function (err) { setLoading(false); setError(err); }); }, tslib_1.__spread([retryCount], inputs)); return { loading: loading, error: error, value: value, retry: retry, refetch: retry, setValue: setValue }; } exports.default = useAsyncOnMount;