UNPKG

@gdjiami/hooks

Version:

react hooks for mygzb.com

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