组件ID是不是重复了啊
onReady中,用selectComponent取wx:for下组件为nullonReady中,用selectComponent取wx:for下包含的组件,取不到。 如果把该组件移到wx:for之外,是可以取到的。 [代码]<view [代码][代码]class[代码][代码]=[代码][代码]"articles"[代码][代码]>[代码][代码] [代码][代码]<view wx:[代码][代码]for[代码][代码]=[代码][代码]"{{articles}}"[代码] [代码]class[代码][代码]=[代码][代码]"article"[代码] [代码]wx:[代码][代码]for[代码][代码]-index=[代码][代码]"idx"[代码] [代码]data-aid=[代码][代码]"{{item.article_id}}"[代码] [代码]bindtap=[代码][代码]"onArticleClicked"[代码][代码]>[代码][代码] [代码][代码]<view [代码][代码]class[代码][代码]=[代码][代码]"container"[代码][代码]>[代码][代码] [代码][代码]<ec-canvas id=[代码][代码]"mychart_0"[代码] [代码]canvas-id=[代码][代码]"mychart-bar"[代码] [代码]ec=[代码][代码]"{{ ec }}"[代码][代码]></ec-canvas>[代码][代码] [代码][代码]</view>[代码][代码] [代码][代码]</view>[代码][代码]</view>[代码] [代码]onReady() {[代码][代码] [代码][代码]//获取组件[代码][代码] [代码][代码]this[代码][代码].ecComponent = [代码][代码]this[代码][代码].selectComponent([代码][代码]'#mychart_0'[代码][代码]);[代码][代码] [代码][代码]console.log([代码][代码]'============================='[代码][代码])[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].ecComponent)[代码][代码]},[代码]
2018-08-17onLoad中好像是有时会遇到组件没有完成初始化的情况
selectcomponent 返回null[代码]onLoad: function(){[代码][代码] [代码][代码]this[代码][代码].barComponent = [代码][代码]this[代码][代码].selectComponent([代码][代码]'#barDom'[代码][代码]);[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].selectComponent([代码][代码]'#barDom'[代码][代码]))[代码][代码] [代码][代码]this[代码][代码].lineComponent = [代码][代码]this[代码][代码].selectComponent([代码][代码]'#lineDom'[代码][代码]);[代码][代码] [代码][代码]this[代码][代码].pieComponent = [代码][代码]this[代码][代码].selectComponent([代码][代码]'#pieDom'[代码][代码]);[代码][代码]},[代码] [代码][代码] <ec-canvas id="lineDom" canvas-id="line" ec="{{ecLine}}"></ec-canvas> <ec-canvas id="barDom" canvas-id="bar" ec="{{ecBar}}"></ec-canvas> <ec-canvas id="pieDom" canvas-id="pie" ec="{{ecPie}}"></ec-canvas> 早上还可以取到barComponent 下午的时候就报null [图片]
2018-08-17检查一下代码执行先后顺序,可能是组件初始化代码还没执行完就到你这里了
开发工具刚打开时,调用wx.createSelectorQuery()出错我是在上拉加载中调用的wx.createSelectorQuery()来获取dom位置信息, let qid = '#ppt-' + cTab + '-' + 0 + '-' + (lasto) let query = wx.createSelectorQuery() query.select(qid).boundingClientRect() query.exec(function (res) { console.log(res[0].bottom) }) 如果我刚打开调试工具后上拉,调用会出警告如下: VM54:1 An SelectorQuery call is ignored because no proper page or component is found. Please considering using `SelectorQuery.in` to specify a proper one. 然后我按照提示加了wx.createSelectorQuery().in(this)也不行 重新编译一下就不会报错了,不知道是什么问题? 崩溃。。 求救c⌒っ゚Д゚)っ
2018-08-17console.log 这类方法是打印绑定对象的,比如啊A B两个时间点,在A时刻对象还没有赋值,这时console.log()打印对象是可以的, 到了B时刻,对象被赋值了, 你再到控制台查看,那么控制台给出的是赋值后的状态
this.selectComponent项目中有图表,所以使用了echarts [代码]this[代码][代码].echartsComponnet = [代码][代码]this[代码][代码].selectComponent([代码][代码]'#mychart-line'[代码][代码]);[代码][代码]console.log([代码][代码]this[代码][代码].echartsComponnet.chart)[代码]在使用[代码]this[代码][代码].selectComponent之后,在控制台打印了一下返回结果[代码] [代码][图片]我想确认一下,这个chart里面的内容可以拿到吗,我能打印出data、dataset的内容,可是就[代码]this[代码][代码].echartsComponnet.chart返回undefined,请问这是为什么?[代码][代码]
2018-08-17如果页面引用了组件,那么就可以使用这个API: js: onLoad: function(e) { var ctx = this; ctx.selectComponent && null == ctx.notification && (ctx.notification = ctx.selectComponent("#notification")); 。。。。。 wxml: <dialog id="notification" bindonConfirm="onConfirm"></dialog> json: { "usingComponents": { "dialog": "/utils/Dialog/Dialog" } }
自定义组件selectComponent函数怎么用自定义组件selectComponent函数怎么用?官网的解释:‘使用选择器选择组件实例节点,返回匹配到的第一个组件实例对象’没太明白
2018-08-17我的le2,FastBLE扫描到设备后不连接,小程序扫描到设备后连,再用FastBLE连接设备,竟然可以连接上还可一发数据,不进行断开操作,回到小程序竟然也可以发数据!难道我连的设备是1:M模式!
(附上测试代码与图片)BLE蓝牙断开后重新连接收到多个相同数据包之前反应过这个问题,但是没有人回应,以为是蓝牙有问题,买了新的ble蓝牙模块,通过串口连接到电脑测试,断开之后再连接收到多个数据包,下面是测试的代码和测试的图片,希望得到帮助! 代码: Page({ data: { deviceId: '', serviceId: '', charId: '', devicecon: [], }, onLoad: function() { var that = this; wx.openBluetoothAdapter({ success: function(res) { wx.getBluetoothAdapterState({ success: function(res) { wx.startBluetoothDevicesDiscovery({ success: function(res) { wx.getBluetoothDevices({ success: function(res) { for (var i = 0; i < res.devices.length; i++) { that.data.devicecon.push(res.devices[i]['deviceId']); } wx.onBluetoothDeviceFound(function(devices) { for (var i = 0; i < devices.devices.length; i++) { that.data.devicecon.push(devices.devices[i]['deviceId']); } that.setData({ devicecon: that.data.devicecon, }); console.log(that.data.devicecon); }) } }) } }) } }) } }) wx.onBLEConnectionStateChange(function(res) { if (!res.connected) { console.log('已经断开了'); } }) //特征值改变 wx.onBLECharacteristicValueChange(function (res) { var buf = (res.value.byteLength); console.log("我真的只发送一次"); console.log(buf); console.log("我真的只发送一次"); }) }, linkbluetooth:function(e){ var that = this; that.data.deviceId = e.currentTarget.dataset.value; wx.createBLEConnection({ deviceId: that.data.deviceId, success: function (res) { console.log('经连接成功了!') wx.getBLEDeviceServices({ deviceId: that.data.deviceId, success: function (res) { for(var i=0;i<res.services.length;i++){ if(res.services[i]['uuid'].indexOf('ffe0') != -1){ that.data.serviceId = res.services[i]['uuid']; } } //获取特征值 if(that.data.serviceId){ setTimeout(function () { wx.getBLEDeviceCharacteristics({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, success: function (res) { for(var i=0;i<res.characteristics.length;i++){ if (res.characteristics[i]['uuid'].indexOf('ffe1')!=-1){ that.data.charId = res.characteristics[i]['uuid']; } } wx.notifyBLECharacteristicValueChange({ state: true, // 启用 notify 功能 // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取 deviceId: that.data.deviceId, // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取 serviceId: that.data.serviceId, // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取 characteristicId: that.data.charId, success: function (res) { console.log('notifyBLECharacteristicValueChange success', res.errMsg) } }); console.log(that.data.charId); that.writecomm(); } }) }, 2000); } } }) } }) }, writecomm:function(){ var that = this; let buffer = new ArrayBuffer(1) let dataView = new DataView(buffer) dataView.setUint8(0,99); wx.writeBLECharacteristicValue({ // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取 deviceId: that.data.deviceId, // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取 serviceId: that.data.serviceId, // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取 characteristicId: that.data.charId, // 这里的value是ArrayBuffer类型 value: buffer, success: function (res) { console.log('writeBLECharacteristicValue success', res.errMsg) } } )} [图片] 串口已经连接到了蓝牙模块,最后一行R:0是电脑接收到的字节,S:0是发送的给蓝牙的字节,刚开始都是0 [图片] 连接到了蓝牙 [图片] 此时,串口收到了1个字节的数据,为代码中10进制的 99,就是16进制的63 [图片] 通过串口发送一个字节的数字给蓝牙模块 [图片] 此时 接收 和发送的数据都是1 完全是没有问题的, 但是在蓝牙模块意外中断之后,问题就来了(图片太大了,不能超过5M,只能缩小一下图片了) [图片] 拔掉蓝牙电源线,通信中断了 [图片] 蓝牙断开之后重新接电,连接蓝牙 [图片] 再次连接成功 [图片] 收到了有收到了第二个63 ,再发送一个31给蓝牙, 监听特征值缺收到了2个数据包 加第一次的数据包一共是3个。 [图片] 而且你断开n次,重新连接之后你就可以收到n+1个数据包。用 wx.closeBluetoothAdapter(OBJECT)断开资源,重新连接,依然是收到两个数据包,除非退出小程序重新进入,或者关闭手机蓝牙再次打开。
2018-08-17多个机型,IOS,ANDROID都有,应该是普遍性BUG
video 渲染不正常没有填满page样式: page { overflow:hidden; width: 100%; height:100%; position: relative; padding-top:0rpx; } .auto-video { position:absolute; bottom:0; top:0; width: 100%; height:100%;} 脚本: /** * 生命周期函数--监听页面显示 */ onShow: function () { wx.hideTabBar(); }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { console.log("onhide"); wx.showTabBar(); }, wxml视图: <video autoplay="true" class="auto-video" objectFit="cover" controls="{{false}}" enableProgressGesture="{{false}}" id="video" loop="true" src="{{urls[active]}}"></video> 问题描述: 页面加载时通过 onShow 事件隐藏tabBar,在真机运行会有一定概率(25%)出现视频没有填充整个页面,而是在页脚留下一块比tabBar稍高的视频空白区,求解决。
2018-07-31有什么问题,接口返回的就是图片数据,不是图片链接
小程序生成二维码B类接口在生成二维码时,前台返回得是全是图片二进制 类似这种: $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?�M'G������3��R�K9f$���(���������f������R���4xু��U���m],��^�t�M�g�u�P��9��,�.Ry�!G�w?g��_��c��O���7|Z�O�_����Ņ��< ����tZ����zU��V�Kխ� .t�N����Im�&���h��(��$��'��I��P? 这个该怎么处理??难道在后台保存,然后返回直接路径
2018-07-30好無奈哦, 硬生生的不支持,有原因嗎?
不能引入小程序配置模块 app.json吗?- 需求的场景描述(希望解决的问题) 通过require引入小程序配置模块 app.json, 其他json同等对待 - 希望提供的能力 var a = require("../../app.json"); 错误提示 module "app.json.js" is not defined!!!
2018-07-20你可以把图标样式去掉,先测试看content能不能显示
:after 伪元素不显示,请优化开发工具用了weui框架 你跟我说不支持伪元素, 我用了图标,又不能显示content,一名前端不用了css伪类,好奇怪
2018-07-02