收藏
回答

Cannot read property '__wxWebviewId__

API/组件名称 终端类型 微信版本 基础库版本
createSelectorQuery 客户端 6.6.1 1.9.0

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 个回答

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-24

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

    2018-01-24
    有用
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-12

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

    2018-01-12
    有用
    回复
  • ChocKing
    ChocKing
    2018-01-24

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

    wx.createSelectorQuery( ).in(this)

    .boundingClientRect(function(res){

        // console.log(res)

    }).exec( )

    必复现


    2018-01-24
    有用 2
    回复
  • ChocKing
    ChocKing
    2018-01-24

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

    2018-01-24
    有用
    回复
  • 小古
    小古
    2018-01-12

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

    2018-01-12
    有用
    回复
登录 后发表内容