taro-hooks
Version:
为 Taro 而设计的 Hooks Library
41 lines (40 loc) • 1.25 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var tslib_1 = require("tslib");
var taro_1 = require("@tarojs/taro");
var core_1 = require("@taro-hooks/core");
var shared_1 = require("@taro-hooks/shared");
var usePromise_1 = tslib_1.__importDefault(require("../usePromise"));
function useNetworkType(autoListen) {
if (autoListen === void 0) {
autoListen = true;
}
var _ref = (0, core_1.useState)('unknown'),
networkType = _ref[0],
setNetworkType = _ref[1];
var asyncGetNetworkType = (0, usePromise_1["default"])(taro_1.getNetworkType);
(0, core_1.useEffect)(function () {
asyncGetNetworkType().then(function (response) {
setNetworkType(response.networkType);
}, function (_ref2) {
var errMsg = _ref2.errMsg;
(0, shared_1.logError)(errMsg);
setNetworkType('unknown');
});
}, []);
var listener = function listener(response) {
setNetworkType(response.networkType);
};
(0, core_1.useEffect)(function () {
if (autoListen) {
(0, taro_1.onNetworkStatusChange)(listener);
return function () {
(0, taro_1.offNetworkStatusChange)(listener);
};
}
}, [autoListen]);
return networkType;
}
exports["default"] = useNetworkType;
;