diff --git a/packages/uni-app-plus/dist/view.umd.js b/packages/uni-app-plus/dist/view.umd.js index 82149c22933fada437add7db16ab6bacfedb796d..4240884089e648e4a2816d231a339b246e55fcbc 100644 --- a/packages/uni-app-plus/dist/view.umd.js +++ b/packages/uni-app-plus/dist/view.umd.js @@ -12616,19 +12616,38 @@ function getNodeInfo(el, fields) { return info; } +function findElm(id, vm) { + if (id === vm._$id) { + return vm; + } + + var childVms = vm.$children; + var len = childVms.length; + + for (var i = 0; i < len; i++) { + var childVm = findElm(id, childVms[i]); + + if (childVm) { + return childVm; + } + } +} + function getElm(component, pageVm) { if (!component) { return pageVm.$el; } - if (typeof component === 'string') { - var componentVm = pageVm._$vd.getVm(component); + if (true) { + if (typeof component === 'string') { + var componentVm = findElm(component, pageVm); + + if (!componentVm) { + throw new Error("Not Found\uFF1APage[".concat(pageVm.$page.id, "][").concat(component, "]")); + } - if (!componentVm) { - throw new Error("Not Found\uFF1APage[".concat(pageVm.$page.id, "][").concat(component, "]")); + return componentVm.$el; } - - return componentVm.$el; } return component.$el; diff --git a/src/core/view/bridge/subscribe/api/request-component-info.js b/src/core/view/bridge/subscribe/api/request-component-info.js index 0dc25f08b0677aae314b62a6654d0f2b12997ca9..7724351869c71be8d62119a597f7763fe435c8e8 100644 --- a/src/core/view/bridge/subscribe/api/request-component-info.js +++ b/src/core/view/bridge/subscribe/api/request-component-info.js @@ -73,16 +73,32 @@ function getNodeInfo (el, fields) { return info } +function findElm (id, vm) { + if (id === vm._$id) { + return vm + } + const childVms = vm.$children + const len = childVms.length + for (let i = 0; i < len; i++) { + const childVm = findElm(id, childVms[i]) + if (childVm) { + return childVm + } + } +} + function getElm (component, pageVm) { if (!component) { return pageVm.$el } - if (typeof component === 'string') { - const componentVm = pageVm._$vd.getVm(component) - if (!componentVm) { - throw new Error(`Not Found:Page[${pageVm.$page.id}][${component}]`) + if (__PLATFORM__ === 'app-plus') { + if (typeof component === 'string') { + const componentVm = findElm(component, pageVm) + if (!componentVm) { + throw new Error(`Not Found:Page[${pageVm.$page.id}][${component}]`) + } + return componentVm.$el } - return componentVm.$el } return component.$el }