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

fix(map): trigger tap instead of click

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