Cannot read property '__wxWebviewId__
发布于 5 年前 作者 weijin 5904 次浏览 来自 问答

HONOR KNT-AL10

Android 6.0

目前不知如何复现,小程序正常使用情况下,有机率发生如下错误:

appServiceSDKScriptError TypeError: Cannot read property '__wxWebviewId__' of undefined; at wx.createSelectorQuery
    X5JsCore:48:14266 Function.i
    X5JsCore:43:7757 Object.createSelectorQuery
    X5JsCore:3031:842 Function.e
    X5JsCore:42:13773
    X5JsCore:47:7186

疑似发生在内核

function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.createSelectorQuery = void 0;
            var r = n(163),
                o = function (e) {
                    return e && e.__esModule ? e : {
                        default: e
                    }
                }(r),
                i = function (e) {
                    var t = null;
                    if (e && e.page) t = e.page.__wxWebviewId__;
                    else {
                        var n = getCurrentPages();
                        t = n[n.length - 1].__wxWebviewId__
                    }
                    return new o.default(t)
                };
            t.createSelectorQuery = i
        }

请问什麽情况下会发生,要如何避免这个错误,谢谢

5 回复

对的。因为 observer 触发时机可能在 attached 和 ready 之前。

自定义组件在properties的observer的方法里

wx.createSelectorQuery( ).in(this)

.boundingClientRect(function(res){

    // console.log(res)

}).exec( )

必复现

我在observer的方法里判断已ready才查dom,就没有报错了

你好,旧的基础库版本中确实有可能发生这样的问题。还有一种可能的情况是,用户退出小程序,而小程序还在后台运行,此时调用会有这样的问题。getCurrentPages() 查下页面栈可以规避这个问题。

发生在开启某个字定义组建后,很小机率会发生

回到顶部