UNPKG

@gdjiami/hooks

Version:

react hooks for mygzb.com

53 lines (47 loc) 1.17 kB
/* tslint:disable:no-any */ import { useEffect, useState, useCallback } from 'react'; /** * 在组件挂载时执行异步操作 * @deprecated */ export default function useAsyncOnMount(fn, inputs) { if (inputs === void 0) { inputs = []; } var _useState = useState(true), loading = _useState[0], setLoading = _useState[1]; var _useState2 = useState(undefined), error = _useState2[0], setError = _useState2[1]; var _useState3 = useState(undefined), value = _useState3[0], setValue = _useState3[1]; var _useState4 = useState(0), retryCount = _useState4[0], forceRetry = _useState4[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); }); }, [retryCount].concat(inputs)); return { loading: loading, error: error, value: value, retry: retry, refetch: retry, setValue: setValue }; }