提交 568829af 编写于 作者: D DCloud_LXH

fix(mp): wxs processEventArgs fixed #3829

上级 5d554d24
......@@ -142,7 +142,7 @@ export function initData (vueOptions, context) {
try {
// 对 data 格式化
data = JSON.parse(JSON.stringify(data))
} catch (e) {}
} catch (e) { }
}
if (!isPlainObject(data)) {
......@@ -332,7 +332,7 @@ function wrapper (event) {
// TODO 又得兼容 mpvue 的 mp 对象
try {
event.mp = JSON.parse(JSON.stringify(event))
} catch (e) {}
} catch (e) { }
event.stopPropagation = noop
event.preventDefault = noop
......@@ -413,9 +413,11 @@ function getExtraValue (vm, dataPathsArray) {
return context
}
function processEventExtra (vm, extra, event) {
function processEventExtra (vm, extra, event, __args__) {
const extraObj = {}
__args__ = event.detail.__args__ || __args__
if (Array.isArray(extra) && extra.length) {
/**
*[
......@@ -436,8 +438,8 @@ function processEventExtra (vm, extra, event) {
if (dataPath === '$event') { // $event
extraObj['$' + index] = event
} else if (dataPath === 'arguments') {
if (event.detail && event.detail.__args__) {
extraObj['$' + index] = event.detail.__args__
if (event.detail && __args__) {
extraObj['$' + index] = __args__
} else {
extraObj['$' + index] = [event]
}
......@@ -467,6 +469,10 @@ function getObjByArray (arr) {
function processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {
let isCustomMPEvent = false // wxcomponent 组件,传递原始 event 对象
// fixed 用户直接触发 mpInstance.triggerEvent
const __args__ = event.detail.__args__ || [event.detail]
if (isCustom) { // 自定义事件
isCustomMPEvent = event.currentTarget &&
event.currentTarget.dataset &&
......@@ -475,11 +481,11 @@ function processEventArgs (vm, event, args = [], extra = [], isCustom, methodNam
if (isCustomMPEvent) {
return [event]
}
return event.detail.__args__ || event.detail
return __args__
}
}
const extraObj = processEventExtra(vm, extra, event)
const extraObj = processEventExtra(vm, extra, event, __args__)
const ret = []
args.forEach(arg => {
......@@ -488,7 +494,7 @@ function processEventArgs (vm, event, args = [], extra = [], isCustom, methodNam
ret.push(event.target.value)
} else {
if (isCustom && !isCustomMPEvent) {
ret.push(event.detail.__args__[0])
ret.push(__args__[0])
} else { // wxcomponent 组件或内置组件
ret.push(event)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册