提交 5e0e8f1a 编写于 作者: fxy060608's avatar fxy060608

fix(map): trigger tap instead of click

上级 dc1e3081
...@@ -9,21 +9,26 @@ module.exports = function parseEvent (el) { ...@@ -9,21 +9,26 @@ module.exports = function parseEvent (el) {
const { const {
events: eventsMap events: eventsMap
} = deprecated } = deprecated
normalizeEvent(el.events, eventsMap) normalizeEvent(el, el.events, eventsMap)
normalizeEvent(el.nativeEvents, eventsMap) normalizeEvent(el, el.nativeEvents, eventsMap)
} }
} }
function normalizeEvent (events, eventsMap) { function normalizeEvent (el, events, eventsMap) {
if (!events) { if (!events) {
return return
} }
const isMap = el.tag === 'map' || el.tag === 'v-uni-map'
Object.keys(events).forEach(name => { Object.keys(events).forEach(name => {
// 过时事件类型转换 // 过时事件类型转换
if (eventsMap[name]) { if (eventsMap[name]) {
events[eventsMap[name]] = events[name] if (isMap && name === 'tap') {
delete events[name] // 地图组件有自己特定的 tap 事件,不做转换
// warnLogs.add(`警告:事件${name}已过时,推荐使用${eventsMap[name]}代替`) } else {
events[eventsMap[name]] = events[name]
delete events[name]
// warnLogs.add(`警告:事件${name}已过时,推荐使用${eventsMap[name]}代替`)
}
} }
}) })
} }
...@@ -87,24 +87,29 @@ module.exports = { ...@@ -87,24 +87,29 @@ module.exports = {
events: eventsMap events: eventsMap
} = deprecated } = deprecated
// const warnLogs = new Set() // const warnLogs = new Set()
normalizeEvent(el.events, eventsMap, filterModules) normalizeEvent(el, el.events, eventsMap, filterModules)
normalizeEvent(el.nativeEvents, eventsMap, filterModules) normalizeEvent(el, el.nativeEvents, eventsMap, filterModules)
} }
} }
}] }]
} }
function normalizeEvent (events, eventsMap, filterModules) { function normalizeEvent (el, events, eventsMap, filterModules) {
if (!events) { if (!events) {
return return
} }
const isMap = el.tag === 'map' || el.tag === 'v-uni-map'
Object.keys(events).forEach(name => { Object.keys(events).forEach(name => {
// 过时事件类型转换 // 过时事件类型转换
if (eventsMap[name]) { if (eventsMap[name]) {
events[eventsMap[name]] = events[name] if (isMap && name === 'tap') {
delete events[name] // 地图组件有自己特定的 tap 事件,不做转换
// warnLogs.add(`警告:事件${name}已过时,推荐使用${eventsMap[name]}代替`) } else {
name = eventsMap[name] events[eventsMap[name]] = events[name]
delete events[name]
// warnLogs.add(`警告:事件${name}已过时,推荐使用${eventsMap[name]}代替`)
name = eventsMap[name]
}
} }
const handlers = events[name] const handlers = events[name]
......
...@@ -221,7 +221,8 @@ export default { ...@@ -221,7 +221,8 @@ export default {
deep: true deep: true
}) })
map.onclick = (e) => { map.onclick = (e) => {
this.$trigger('click', {}, e) // 编译器会保留 map 上的 tap 事件
this.$trigger('tap', {}, e)
} }
map.onstatuschanged = (e) => { map.onstatuschanged = (e) => {
this.$trigger('regionchange', {}, {}) this.$trigger('regionchange', {}, {})
......
...@@ -375,8 +375,9 @@ export default { ...@@ -375,8 +375,9 @@ export default {
this.$emit('boundsready') this.$emit('boundsready')
}) })
maps.event.addListener(map, 'click', () => { maps.event.addListener(map, 'click', () => {
// TODO 编译器将 tap 转换为click // 编译器会保留 map 上的 tap 事件
this.$trigger('click', {}, {}) this.$trigger('tap', {}, {})
// this.$trigger('click', {}, {})
}) })
maps.event.addListener(map, 'dragstart', () => { maps.event.addListener(map, 'dragstart', () => {
this.$trigger('regionchange', {}, { this.$trigger('regionchange', {}, {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册