UNPKG

@uiw/react-amap-auto-complete

Version:

通常情况下,开发者需要根据表单控件相关事件的触发来执行 `AMap.AutoComplete` 的 search 方法,并将返回结果绘制成DOM显示到页面上。

44 lines (43 loc) 1.58 kB
"use strict"; 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 }; };