- 组件内部setData为什么显示undefined?
组件:自定义组件 /*组件生命周期 */ lifetimes: { attached:function () { // 在组件实例进入页面节点树时执行 let that = this; db.collection('users').where({ _openid: that.properties.commentItem._openid }).get().then((res) => { console.log(res.data) that.setData({ nickName: res.data._nickName, avatarUrl: res.data._avatarUrl, }) }) // console.log(that.data) }, }, console.log(res.data)有值,但是setData会报如下错误,不是很明白... [图片]
2020-04-05 - ios无法播放InnerAudioContext?
API:wx.createInnerAudioContext 模拟器中可播放音频,但ios真机不可 const thisAudio = wx.createInnerAudioContext(); audioPlay:function() { thisAudio.src = this.data.soundID console.log(thisAudio.src) if (!this.data.isPlay) { thisAudio.play() this.setData({ isPlay: true, hintImg: "/assets/icon/暂停.svg", }) } else { thisAudio.pause() this.setData({ isPlay: false , hintImg: "/assets/icon/播放.svg", }) console.log("播放暂停") } thisAudio.onPlay(() => { console.log('正在播放') }) thisAudio.onEnded(() => { console.log('播放结束') this.setData({ isPlay: false }) }) thisAudio.onError((res) => { console.log(res.errMsg) console.log(res.errCode) this.setData({ isPlay: false, hintImg: "/assets/icon/播放.svg", }) }) }, 模拟器如下,这里也有个很奇怪的地方,第一次onPlay是不会打印信息的,但是暂停之后继续点击播放,才打印出“正在播放” [图片] ios真机如下,监听事件onPlay未监听到正在播放,这是什么原因?我前几天测试的时候是可以的,但是今天不行了。如果不是用云文件id,而是获取播放地址的话,试了一下也还是不行。。。 [图片] 手机型号:iphone8p 微信版本:7.0.12
2020-04-05 - 为什么读不出页面中的数据?
js data: { content_id:'', username:'', useravatar:"", hintImg:"/assets/icon/播放.svg", soundUrl:"", //存储播放地址 isPlay:false, soundID:"" , //云文件id, }, onLoad:{ console.log(options) var index = JSON.parse(options.item); //获取json对象 db.collection('posts').doc(index).get({ success: function (res) { console.log(res.data._fileid) this.setData({ content_id: res.data._id, username: res.data._nickName, useravatar: res.data._avatarUrl, soundID: res.data._fileid }) } }) console.log(this.data) console.log("soundID", this.data.soundID) } 两行console命令结果:为什么这时候单个无法读取数据了? [图片]
2020-03-31 - 请问怎样在组件内部访问云数据库?
在一个自定义组件里,如果想根据openid查询,似乎办不到TT attached:function(){ this._getUserInfo() }, methods:{ _getUserInfo:function(){ console.log(this.properties.contentItem) db.collection('users').where({ _openid: this.properties.contentItem.user-open-id }).get({ success: function (res) { console.log(res.data) } }) } 像这样子,好像不可以访问,返回的是一个空集,直接用db.collection('users').get()也不行...主要是想在组件渲染的时候即时获取信息
2020-03-31 - 为什么录音临时文件无法播放?刚开始的几次是有效的,后来失效。
API:wx.getRecorderManager() wx.createInnerAudioContext() const recorderManager = wx.getRecorderManager() const tempAudio = wx.createInnerAudioContext() startTap:function(){ var self = this; this.data.tempPlay = false; //避免播放按钮失效 const option = { duration:60000, //录音时长10000ms sampleRate:16000, numberOfChannels:1, encodeBitRate:96000, format:'mp3', frameSize:50, } self.recordingTimer(); //开始录音 recorderManager.start(option); recorderManager.onStart( ()=>{ console.log('recorder start') } ); //错误回调 recorderManager.onError( (res)=>{ console.log('recorder fail') } ) }, endTap:function(){ var self = this; //console.log("self",self) this.setData({tempPlay : false}); //避免播放按钮失效 recorderManager.stop(); recorderManager.onStop( (res)=>{ //临时文件路径 self.tempFilePath = res.tempFilePath; console.log('thistemp',self.tempFilePath) console.log('realtemp',res.tempFilePath) const{tempFilePath} = res; //文件正常 wx.getFileInfo({ filePath:self.tempFilePath, success(res){ console.log(res) } }) }) }, 录音采用MP3格式,刚开始完全ok,但是四五次之后再播放就报错10004,这是为什么?录音要求也没错呀……
2020-03-28