@uiw/react-amap-auto-complete
Version:
通常情况下,开发者需要根据表单控件相关事件的触发来执行 `AMap.AutoComplete` 的 search 方法,并将返回结果绘制成DOM显示到页面上。
44 lines (43 loc) • 1.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useAutoComplete = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _reactAmapUtils = require("@uiw/react-amap-utils");
var useAutoComplete = exports.useAutoComplete = function useAutoComplete() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _useState = (0, _react.useState)(),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
autoComplete = _useState2[0],
setAutoComplete = _useState2[1];
(0, _react.useEffect)(function () {
if (AMap && !autoComplete) {
var instance;
if (AMap.v) {
AMap.plugin(['AMap.Autocomplete'], function () {
instance = new AMap.Autocomplete(props);
setAutoComplete(instance);
});
} else {
AMap.plugin(['AMap.AutoComplete'], function () {
instance = new AMap.AutoComplete(props);
setAutoComplete(instance);
});
}
return function () {
if (instance) {
setAutoComplete(undefined);
}
};
}
}, []);
(0, _reactAmapUtils.useSettingProperties)(autoComplete, props, ['Type', 'City', 'CityLimit']);
(0, _reactAmapUtils.useEventProperties)(autoComplete, props, ['onChoose', 'onSelect']);
return {
autoComplete: autoComplete,
setAutoComplete: setAutoComplete
};
};