taro-hooks
Version:
为 Taro 而设计的 Hooks Library
35 lines • 1.09 kB
JavaScript
import { getNetworkType, onNetworkStatusChange, offNetworkStatusChange } from '@tarojs/taro';
import { useEffect, useState } from '@taro-hooks/core';
import { logError } from '@taro-hooks/shared';
import usePromise from '../usePromise';
function useNetworkType(autoListen) {
if (autoListen === void 0) {
autoListen = true;
}
var _useState = useState('unknown'),
networkType = _useState[0],
setNetworkType = _useState[1];
var asyncGetNetworkType = usePromise(getNetworkType);
useEffect(function () {
asyncGetNetworkType().then(function (response) {
setNetworkType(response.networkType);
}, function (_ref) {
var errMsg = _ref.errMsg;
logError(errMsg);
setNetworkType('unknown');
});
}, []);
var listener = function listener(response) {
setNetworkType(response.networkType);
};
useEffect(function () {
if (autoListen) {
onNetworkStatusChange(listener);
return function () {
offNetworkStatusChange(listener);
};
}
}, [autoListen]);
return networkType;
}
export default useNetworkType;