From 0537c9d64635eb18fc3eed0f9681d3b6543f46f7 Mon Sep 17 00:00:00 2001 From: chenjiajian <798095202@qq.com> Date: Wed, 21 Oct 2020 15:43:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(shared/react/runtime):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=20map=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 在微信中 Map 组件 setting 属性还是要用 [] 做默认值,用 {} 会报错 * 可以绑定 onRegionChange --- packages/shared/src/components.ts | 11 +++++++++-- packages/taro-react/src/props.ts | 7 ++++++- packages/taro-runtime/src/dom/event_target.ts | 7 ++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/shared/src/components.ts b/packages/shared/src/components.ts index 63c1d3f5a429..4eea6db91e81 100644 --- a/packages/shared/src/components.ts +++ b/packages/shared/src/components.ts @@ -98,7 +98,6 @@ const Map = { 'enable-rotate': 'false', 'enable-satellite': 'false', 'enable-traffic': 'false', - setting: '{}', bindMarkerTap: '', bindLabelTap: '', bindControlTap: '', @@ -106,7 +105,15 @@ const Map = { bindUpdated: '', bindRegionChange: '', bindPoiTap: '', - ...touchEvents + ...touchEvents, + ...selectEnv({ + alipay: { + setting: '{}' + }, + default: { + setting: '[]' + } + }) } const Progress = { diff --git a/packages/taro-react/src/props.ts b/packages/taro-react/src/props.ts index 5d39a197cc87..c9393dd38fde 100644 --- a/packages/taro-react/src/props.ts +++ b/packages/taro-react/src/props.ts @@ -49,7 +49,12 @@ function setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: un if (!oldValue) { dom.addEventListener(eventName, eventProxy, isCapture) } - dom.__handlers[eventName][0] = value + if (eventName === 'regionchange') { + dom.__handlers.begin[0] = value + dom.__handlers.end[0] = value + } else { + dom.__handlers[eventName][0] = value + } } else { dom.removeEventListener(eventName, eventProxy) } diff --git a/packages/taro-runtime/src/dom/event_target.ts b/packages/taro-runtime/src/dom/event_target.ts index 1b643428a239..8dd47494db78 100644 --- a/packages/taro-runtime/src/dom/event_target.ts +++ b/packages/taro-runtime/src/dom/event_target.ts @@ -17,7 +17,12 @@ export class TaroEventTarget { public __handlers: Record = {} public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) { - warn(type === 'regionchange', 'map 组件的 regionchange 事件非常特殊,请使用 begin/end 事件替代。详情:https://github.com/NervJS/taro/issues/5766') + if (type === 'regionchange') { + // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766 + this.addEventListener('begin', handler, options) + this.addEventListener('end', handler, options) + return + } type = type.toLowerCase() const handlers = this.__handlers[type] let isCapture = Boolean(options)