this指向的request.then这个函数内部不是全局的了,不能使用setData() 你在 request外面给this赋值 var that=this; 里面使用的时候用,that.setData({})
使用setData 对对象赋值失败QAQ?使用this.setData方法对对象赋值失败!改用this直接赋值可以,什么情况?哪位老哥解释一下 [图片][图片]
2020-05-21具体情况不太了解, 你支付5块钱试试, 有时候钱少了也不行
小程序90天内存在支付了为什么还是不能开通直播?急需开通直播appid:wx952a392aac16e014 求管理大大帮忙看下吧
2020-05-21全局参数验证, 页面 onShow 的时候 判断参数是否是登录状态, 如果没有登录,重定向页面。 可以试试, 对IOS上回退机制不是特别了解。
小程序上有个退出按钮,点击之后,ios的右滑会返回原来退出之前的页面,该怎么处理?我们的小程序的退出按钮 就相当于 切换账号功能 , 点击之后 ios 右滑又回到了退出之前那个人的账号 应该怎么处理一下?
2020-05-21只能是同一个主体才可以 , 使用微信官方提供的同主体下 不同公众号中,同一用户UnionID 相同
请问多个公众号(服务号和订阅号)如何进行绑定互通?同一个主体下微信公众服务号和订阅号,有没有办法绑定进行互通?
2020-05-21发一下你怎么调用的
您好,请问一下如何在app.js里面调用封装好的方法呢?我在app.js里面已经封装好公共方法setLogin(),但是我在app.js里面调用的时候总是报这个方法undefined,请您给指点一下!
2020-05-21现在还不支持重复使用一个直播间吧, 虽然在代码上可以动态获取直播间id, 但是每次都要重新去小程序里面重下新开直播间, 太麻烦了。 如果是户外直播 那更麻烦.......
直播创建的直播间不能复用么?创建直播间后有房间ID,直播结束后这个房间都不能用了么,某些场景下把房间ID直接写死到小程序里了,我要怎么办。
2020-04-20公司就是自营的店铺 , 并不会涉及到商家入驻啥的 , 小程序 就是我们的店铺平台而已。 一会添加一个功能视频 https://v.qq.com/x/page/z3033ecmcuy.html
审核类目与功能页面不一致?小程序提审类目是商家自营 通不过审核 [图片] 在商品详情是有店铺两个字 但那是返回到我们小程序首页的, 首页就是我们公司一些产品展示 并不会有商家入驻等功能,商家自营类目没错吧 , 是不是把项目中商铺两个字换掉就不涉及商家入驻/店铺接入了? 还是其他原因?
2019-12-10[图片]wx:for-item='url' 去掉外面的{{ }}
WXML取不到data 中某一个对象- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 其它数据取出来了,就url没有 - 复现路径 - 提供一个最简复现 Demo [代码]<[代码][代码]view[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{goods}}"[代码] [代码]wx:key[代码][代码]=[代码][代码]"{{index}}"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]> 商品图: [代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{item.url}}"[代码] [代码]wx:for-item[代码][代码]=[代码][代码]"{{url}}"[代码] [代码]wx:key[代码][代码]=[代码][代码]"{{index}}"[代码] [代码]>{{url.tempFileURL}} </[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"classify-detail"[代码][代码]> [代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]""[代码][代码]>数量: {{item.goodAmount}}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]""[代码][代码]>名称: {{item.goodName}}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]""[代码][代码]>价格: {{item.goodPrice}}</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"classify-footer"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]size[代码][代码]=[代码][代码]"mini"[代码] [代码]class[代码][代码]=[代码][代码]"classify-btn"[代码] [代码]data-index[代码][代码]=[代码][代码]"{{index}}"[代码] [代码]bindtap[代码][代码]=[代码][代码]"deleteGoods"[代码][代码]>删除</[代码][代码]button[代码][代码]> [代码][代码] [代码][代码]</[代码][代码]view[代码][代码]> [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码]// page/admin/goodsMgr/goodsMgr.js[代码][代码]const db = wx.cloud.database();[代码][代码]Page({[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 页面的初始数据[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]images:[],[代码][代码] [代码][代码]goodName:[代码][代码]''[代码][代码],[代码][代码] [代码][代码]goodPrice:[代码][代码]''[代码][代码],[代码][代码] [代码][代码]goodAmount:[代码][代码]''[代码][代码],[代码][代码] [代码][代码]fileID:[],[代码][代码] [代码][代码]goods:[][代码][代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面加载[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码] [代码](options) {[代码][代码] [代码][代码]this[代码][代码].getGoods();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面显示[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onShow: [代码][代码]function[代码] [代码]() {[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]onNameChange:[代码][代码]function[代码][代码](event){ [代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]goodName:event.detail[代码][代码] [代码][代码]}) [代码][代码] [代码][代码]},[代码][代码] [代码][代码]onPriceChange:[代码][代码]function[代码][代码](event){ [代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]goodPrice:event.detail[代码][代码] [代码][代码]}) [代码][代码] [代码][代码]},[代码][代码] [代码][代码]onAmountChange:[代码][代码]function[代码][代码](event){ [代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]goodAmount:event.detail[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]uploadPicture:[代码][代码]function[代码][代码](event){[代码][代码] [代码][代码]wx.chooseImage({[代码][代码] [代码][代码]count: 5,[代码][代码] [代码][代码]sizeType: [[代码][代码]'original'[代码][代码], [代码][代码]'compressed'[代码][代码]],[代码][代码] [代码][代码]sourceType: [[代码][代码]'album'[代码][代码], [代码][代码]'camera'[代码][代码]],[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]// tempFilePath可以作为img标签的src属性显示图片[代码][代码] [代码][代码]const tempFilePaths = res.tempFilePaths;[代码][代码] [代码][代码]console.log(tempFilePaths);[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]images: [代码][代码]this[代码][代码].data.images.concat(tempFilePaths)[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]submit:[代码][代码]function[代码][代码](event){[代码][代码] [代码][代码]wx.showLoading({[代码][代码] [代码][代码]title: [代码][代码]'上传中'[代码][代码],[代码][代码] [代码][代码]}); [代码] [代码] [代码][代码]let promiseArr=[];[代码][代码] [代码][代码]for[代码][代码](let i=0; i<[代码][代码]this[代码][代码].data.images.length ;i++){[代码][代码] [代码][代码]let item = [代码][代码]this[代码][代码].data.images[i];[代码][代码] [代码][代码]let suffix = /\.\w+$/.exec(item)[0];[代码][代码] [代码][代码]promiseArr.push([代码][代码]new[代码] [代码]Promise((resolve, reject) => {[代码][代码] [代码][代码]wx.cloud.uploadFile({[代码][代码] [代码][代码]cloudPath: [代码][代码]new[代码] [代码]Date().toLocaleDateString() + [代码][代码]'/'[代码] [代码]+[代码][代码]new[代码] [代码]Date().getTime() + suffix,[代码][代码] [代码][代码]filePath: item, [代码][代码]// 文件路径[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]// get resource ID[代码][代码] [代码][代码]console.log(res.fileID)[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]fileID: [代码][代码]this[代码][代码].data.fileID.concat(res.fileID)[代码][代码] [代码][代码]});[代码][代码] [代码][代码]resolve();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]// handle error[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}));[代码][代码] [代码][代码]}[代码][代码] [代码][代码]Promise.all(promiseArr).then(res =>{[代码][代码] [代码][代码]db.collection([代码][代码]'goods'[代码][代码]).add({ [代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]goodName: [代码][代码]this[代码][代码].data.goodName,[代码][代码] [代码][代码]goodPrice:[代码][代码]this[代码][代码].data.goodPrice,[代码][代码] [代码][代码]goodAmount:[代码][代码]this[代码][代码].data.goodAmount,[代码][代码] [代码][代码]fileID:[代码][代码]this[代码][代码].data.fileID [代码][代码] [代码][代码]}[代码][代码] [代码][代码]}).then(res =>{[代码][代码] [代码][代码]wx.hideLoading();[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'成功'[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}).[代码][代码]catch[代码][代码](res => {[代码][代码] [代码][代码]wx.hideLoading();[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'评价失败'[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}, [代码][代码] [代码][代码]//Goods[代码][代码] [代码][代码]getGoods: [代码][代码]function[代码] [代码](e) { [代码][代码] [代码][代码]// 查询当前用户所有的 counters[代码][代码] [代码][代码]db.collection([代码][代码]'goods'[代码][代码]).where({[代码][代码] [代码] [代码] [代码][代码]}).get({[代码][代码] [代码][代码]success: res => { [代码][代码] [代码][代码]console.log([代码][代码]'[数据库] [查询记录] 成功: '[代码][代码], res) [代码][代码] [代码][代码]// 查询存储图片url 有效期2小时[代码][代码] [代码][代码]for[代码][代码](let i =0 ;i < res.data.length; i++){[代码][代码] [代码][代码]wx.cloud.getTempFileURL({[代码][代码] [代码][代码]fileList: res.data[i].fileID,[代码][代码] [代码][代码]success: urlres => { [代码][代码] [代码][代码]res.data[i][[代码][代码]'url'[代码][代码]] = urlres.fileList;[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: console.error[代码][代码] [代码][代码]}) [代码][代码] [代码][代码]} [代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]goods: res.data [代码][代码] [代码][代码]})[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].data.goods);[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]icon: [代码][代码]'none'[代码][代码],[代码][代码] [代码][代码]title: [代码][代码]'查询记录失败'[代码][代码] [代码][代码]})[代码][代码] [代码][代码]console.error([代码][代码]'[数据库] [查询记录] 失败:'[代码][代码], err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]//---------------delete------------------------------[代码][代码] [代码][代码]deleteGoods: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码] [代码] [代码][代码]console.log(e)[代码][代码] [代码][代码]debugger[代码][代码] [代码][代码]let goods = [代码][代码]this[代码][代码].data.goods;[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]goods: goods,[代码][代码] [代码][代码]}) [代码][代码] [代码][代码]this[代码][代码].syngoodDB();[代码][代码] [代码][代码]},[代码][代码] [代码][代码]//--------------syngoodDB------------------------[代码][代码] [代码][代码]syngoodDB: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]const db = wx.cloud.database();[代码][代码] [代码][代码]const _ = db.command;[代码][代码] [代码][代码]var[代码] [代码]gooddbid = [代码][代码]this[代码][代码].data.gooddbid;[代码][代码] [代码][代码]db.collection([代码][代码]'data1'[代码][代码]).doc(gooddbid).update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]//默认是更新 style.color 字段为 'blue' 而不是把 style 字段更新为 { color: 'blue' } 对象:[代码][代码] [代码][代码]//如果需要替换更新一条记录,可以在记录上使用 set 方法,替换更新意味着用传入的对象替换指定的记录:[代码][代码] [代码][代码]data: _.set([代码][代码]this[代码][代码].data.goods)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]console.log([代码][代码]'[数据库] [更新记录] 成功:'[代码][代码], gooddbid);[代码][代码] [代码][代码]wx.showToast({[代码][代码] [代码][代码]title: [代码][代码]'[数据库][更新记录] 成功:'[代码] [代码]+ gooddbid,[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]icon: [代码][代码]'none'[代码][代码],[代码][代码] [代码][代码]console.log([代码][代码]'[数据库] [更新记录] 失败:'[代码][代码], err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}, [代码][代码]})[代码]
2019-06-17是不是还是和内存有关系? 我有一个列表页,里面每一个item都会渲染出一个swiper组件,(并不自动轮播,用户手动去切换)。详情页也有轮播。 后来把列表页的swiper都去掉之后,的确缓解了很多,但是还是会出现。 页面跳转是navigateTo的方式,换成redirectTo也能缓解很多。但是返回不了上个页面,这从交互逻辑上过不去啊,
页面闪烁问题navigateTo 页面跳转后,在当前页面及跳转页面不停闪烁的问题 去年 的这个问题解决了没有?我现在这块又出现了 好多用户都闪屏。 怎么解决 [图片] 只有安卓机型有问题,苹果没问题。 官方大大看到后尽快给个回复呀, 在线等。。
2019-06-10的确是最好的办法 赞同
小程序swiper 组件感谢你的阅读,请教各位大佬: swiper组件怎么分为两行显示4张图片呢? 期待的效果是这样的: [图片] 代码如下: [图片] 谢谢!
2018-09-11