@gdjiami/hooks
Version:
react hooks for mygzb.com
30 lines (29 loc) • 1.16 kB
JavaScript
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 };
}