这个错误由于捕获不到 直接是上报上来的
this.selectComponent is not a function. (In 'this.selectComponent("#tabbar")', 'this.selectComponent' is undefined);at "pages/index/index" page lifeCycleMethod onLoad function
是不是不能在onLoad调用this.selectComponent?
微信版本:6.5.7
大多都是安卓机型
你好,selectComponent 需要在页面有自定义组件时或在自定义组件中才可使用。
如果是现网上的报错,很可能是由于微信版本较低导致的。低于 1.6.3 的基础库版本没有自定义组件支持。
可以确定的是 我的页面上有用到组件
<view class="container tabbar-page">
<tabbar id="tabbar"></tabbar>
</view>
json:
{
"backgroundTextStyle": "dark",
"enablePullDownRefresh": true,
"usingComponents": {
"tabbar": "../../components/tabbar/tabbar"
}
}
js:
onLoad: function () {
this.tabbar = this.selectComponent('#tabbar');
}
微信后台设置
按理说低于1.6.4不可能进得来
我也束手无策了, 现在改成了通过组件的
properties的observer
方法监听来值的改变做相应的处理,能实现我的需求
应该是这么个问题:有部分很老的客户端会忽略后台的最低版本设置,也就是说,这几个很老的客户端版本仍然可以进入你的小程序来引发这个错误。这部分用户的占比很低 <<1% ,如果你不想忽略这一小部分用户的话,可以在进入小程序时判断基础库版本号,做一个提示。
你自己写的函数?
是微信自有的
啊?可以用的啊。 我在用啊,selectComponent。
忽略我,有专业的来回答了
如果使用 wx:if 控制组件的展示与隐藏,在wx:if = false时,this.selectComponent() 获取到值是null。
我也遇到了这个问题,引用了第三方标签库。我发现只要有隐藏属性都会存在,基础库2.27.2 我怀疑是微信的小程序的bug
<view wx:if="{{pet.key == 4}}">
<l-input id="petType" value="{{pet.type}}" hide-label showRow="{{false}}" placeholder="请输入宠物名" required="{{true}}"/>
</view>
</l-form-item>
我也遇到这个问题,蹊跷的是我选择两种不同的编译模式下,一种编译 模式可以,另一种编译模式就会出现这个问题,返回的是null,取不到对象。
后来我就没有在index.js中使用this.selectComponent方法,在其他功能中使用这个方法没问题。
.json文件的格式不对也会导致这个问题。
正确的格式内容如下:
{ "usingComponents": { "pwddialog":"../components/pwddialog/pwddialog" }
}