@gdjiami/hooks
Version:
react hooks for mygzb.com
33 lines (32 loc) • 1.31 kB
JavaScript
;
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;