diff --git a/src/platforms/app-plus/service/api/plugin/uts.js b/src/platforms/app-plus/service/api/plugin/uts.js index 06275ad371d6bb86c55040fd39c6e682a3b13de1..498f410ed1356e618d4f02edbd92f58a53103b9c 100644 --- a/src/platforms/app-plus/service/api/plugin/uts.js +++ b/src/platforms/app-plus/service/api/plugin/uts.js @@ -1,8 +1,12 @@ import { isPlainObject, hasOwn, extend, capitalize, isString } from 'uni-shared'; +// 生成的 uts.js 需要同步到 vue2 src/platforms/app-plus/service/api/plugin let callbackId = 1; let proxy; const callbacks = {}; +function isComponentPublicInstance(instance) { + return instance && instance.$ && instance.$.proxy === instance; +} function normalizeArg(arg) { if (typeof arg === 'function') { // 查找该函数是否已缓存 @@ -12,9 +16,21 @@ function normalizeArg(arg) { return id; } else if (isPlainObject(arg)) { - Object.keys(arg).forEach((name) => { - arg[name] = normalizeArg(arg[name]); - }); + if (isComponentPublicInstance(arg)) { + let nodeId = ''; + // @ts-expect-error + const el = arg.$el; + // 非 x 可能不存在 getNodeId 方法? + if (el && el.getNodeId) { + nodeId = el.getNodeId(); + } + return { nodeId }; + } + else { + Object.keys(arg).forEach((name) => { + arg[name] = normalizeArg(arg[name]); + }); + } } return arg; }