- 接受到的类型不兼容的值:应为<数字>,但得到的不是数字值。改为使用0。这样的警告怎么解决?
做了个星星的评分组件,但是一直就报出警告,如图中的两个警告怎么解决?如图: [图片] 代码如下: <!--components/stars/stars.wxml--> <view class="rate-group"> <image class="rate-image" style="width:{{starsize}}rpx;height:{{starsize}}" wx:for="{{lights}}" wx:key="key" src="../../images/rate-light.png" /> <image class="rate-image" style="width:{{starsize}}rpx;height:{{starsize}}" wx:for="{{hafls}}" wx:key="key" src="../../images/rate-half.png" /> <image class="rate-image" style="width:{{starsize}}rpx;height:{{starsize}}" wx:for="{{grays}}" wx:key="key" src="../../images/rate-gray.png" /> <text wx:if="{{istext}}" class="rate-text" style="font-size:{{fontsize}}rpx;color:{{fontcolor}}" >{{ratetext}}</text> </view> // components/stars/stars.ts properties: { rate: { type: Number, value: 0, observer(){ //newVal,oldVal,changedPath //属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串,如:'_propertyChange' //通常newVal就是新设置的数据,oldVal是旧数据 this.updateRate(); } }, starsize: { type: Number, value: 20 //rpx }, fontsize: { type: Number, value: 20 //rpx }, fontcolor: { type: String, value: "#ccc" }, istext: { type: Boolean, value: true }, }, lifetimes: { attached: function () { this.updateRate() } }, methods: { updateRate:function(){ var that = this; // console.log(that.properties.rate); var rate = that.properties.rate; var intRate = parseInt((rate).toString()); var light = parseInt((intRate / 2).toString()); var hafl = intRate % 2; var gray = 5 - light - hafl; var lights = []; var hafls = []; var grays = []; for (var index = 1; index <= light; index++) { lights.push(index); } for (var index = 1; index <= hafl; index++) { hafls.push(index); } for (var index = 1; index <= gray; index++) { grays.push(index); } var ratetext = rate && rate > 0 ? rate.toFixed(1) : "未评分"; that.setData({ lights: lights, hafls: hafls, grays: grays, ratetext: ratetext }) } } <!--index.wxml--> <stars rate="{{item.rating.value}}"></stars>
2023-10-10 - 报错400(Bad Request)?
刚写完代码时,能够正常显示,在调试中,当多调试几次时就报错400(Bad Request),偶尔又不会报错,这是什么情况?求指教。报错如下图: [图片] 代码: getsearch:function(params:any){ var q = params.q; var url = globalUrls.searchUrl(q); wx.request({ url:url, // header:{ // // "Content-Type":"application/x-www-form-urlencoded" // // 'Content-Type':'application/text' // 'Content-Type':'application/josn' // }, success:function(res:any){ console.log(res); var subjects = res.data.subjects.items; if(params.success){ params.success(subjects); } } }) }
2023-10-09 - 接受到的类型不兼容的值:但得到的是非数组,而使用了空数组?
确报了一大串警告,看着这警告很烦,这个问题怎么解决?图片: [图片] 代码: components代码 // components/indexmodule/indexmodule.ts Component({ properties: { items:{ type:Array, value:[] }, }, <!--components/indexmodule/indexmodule.wxml--> <scroll-view class="module-scroll-view" scroll-x="{{true}}"> <itemview wx:for="{{items}}" wx:key="title"></itemview> </scroll-view> pages页面代码 <!--index.wxml--> <indexmodule items="{{movies}}"></indexmodule> // index.ts onLoad() { var that = this; network.getMovieList({ success:function(movies:any){ that.setData({ movies:movies }) } }) } // /utils/urls。ts getMovieList: function (params: any) { params.type = "movie"; this.getItemList(params); }, getItemList: function (params: any) { var url = ""; if (params.type === 'movie') { url = globalUrls.movieList; } else if (params.type === 'tv') { url = globalUrls.tvList; } else { url = globalUrls.showList; } var count = params.count ? params.count:7; wx.request({ url: url, data: { count: count, }, success: function (res: any) { // console.log(res); var items = res.data.subject_collection_items; var itemsCount = items.length; var left = itemsCount%3; if(left === 2){ items.push(null) } if (params && params.success) { params.success(items); } } }) }
2023-09-29 - 如何把pages中网络图片传值给components中,在pages页面中使用获取到不同的图片?
在components中封装了一个组件,如果我要把这个组件在多个地方使用,但是图片传是值不一样,那么要如何设定 如图:第一张图获取到的图片地址是:cover.url,而第二个获取到的图片地址是:pic.large [图片] [图片] 我一开始用下面代码不起作用。那么这个src的值要怎么设定,才能够在pages页面中传入获取到的不同的图片 components中js 代码: imagePath:{ type:Array, value:"" } components中wxml代码: <view class="thumbnail-group"> <image class="thumbnail" src="{{imagePath}}" /> </view> pages页面中的代码: <indexmodule title="电影" items="{{movies}}" imagePath="{{item.cover.url}}"></indexmodule>
2023-09-28 - 不能将类型“string”分配给类型"nver"?
之前写的同样的代码,一点问题没有,为什么更新了开发工具之后,就提示:不能将类型“string”分配给类型nver,请高手指点下。如图: [图片] 代码如下: wxml代码: <view class="news" wx:for="{{newses}}">{{item}}</view> <button class="loading" loading="true">上拉加载...</button> ts代码: Page({ /** * 页面的初始数据 */ data: { sources:[ '今天礼拜四,天气很好,适合去钓鱼', '今天礼拜四,天气很好,适合去钓鱼', '今天礼拜四,天气很好,适合去钓鱼', '今天礼拜四,天气很好,适合去钓鱼', ], newses:[] }, /** * 生命周期函数--监听页面加载 */ onLoad() { var that = this; setTimeout(function(){ var sources = that.data.sources; var newses = []; for(var index=0;index<10;index++){ var news = sources[index]; newses.push(news); } that.setData({ newses:newses }) },1000); }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { var that = this; setTimeout(function(){ var newses = that.data.newses; var newsesLength = newses.length; var sources = that.data.sources; var sourcesLength = that.data.sources.length; var start = newsesLength; var end = Math.min(start+9,sourcesLength-1); for (var index = start;index <= end;index++){ var news = sources[index]; newses.push(news); } that.setData({ newses:newses }) },1000) }
2023-09-21 - 类型{}上不存在属性”windowWidth“?
在onLoad()里面已经将windowWidth保存到data中,在滚动事件的代码中写代码,war width=this.data.windowWidth,却报错提示,类型{}上不存在属性”windowWidth“.如果在滚动事件代码中把onLoad中的代码:var systemInfo = systemInfo.windowWidth var windowWidth = systemInfo.widowWidth;var width = windowWidth,写进去,就不会报这样的错,这是生命原因?如果多个地方需要用到这个属性,那不是每次都得重新写一遍? onLoad() { var systemInfo=wx.getSystemInfoSync(); var windowHeight = systemInfo.windowHeight; var windowWidth = systemInfo.windowWidth; var width = windowWidth; var height = 100; var radius = (height/2)+(width*width/8/height); var left = -(radius-width/2); this.setData({ windowHeight:windowHeight, windowWidth:windowWidth, radius:radius, left:left }) }, /** * 滚动的事件 */ scrollEvent:function(event:any){ var scrollTop = event.detail.scrollTop; if(scrollTop > 0 && scrollTop <= 100){ var height = 100-scrollTop; var width = this.data.windowWidth; // var systemInfo=wx.getSystemInfoSync(); // var windowWidth = systemInfo.windowWidth; // var width = windowWidth; var radius = (height/2)+(width*width/8/height); var left = -(radius-width/2); this.setData({ radius:radius, left:left }) } },
2023-09-19 - 已声明datawet,但从未读取其值,这是什么问题?
如下面的代码,写了一个跳转的代码,我之前也是这样写,怎么就从来没有遇到过如图所示的问题,是不是小程序又改了? ts代码: onshijian(e){ console.log(e); var dataset=e.currentTarget.dataset; wx.navigateTo({ url:'/pages/abc/abc' }) }, 问题如图: [图片]
2023-05-09 - 怎么又要让我续费呢?
10月19日晚上续的费用,才4号,怎么就又要让我续费呢?难道有效期只有半个月?请官方回复 [图片]
2022-11-05 - wx.login做了个全局配置,不知道有没有问题?
自从官方说改了授权接口之后,花了不少时间研究这个东西,也查了不少资料,也得到过不少人的指点,今天终于实现了效果,终究是自己第一次完成了这么个功能,不知道代码有没有问题,请大师给参考下。另外就是头像URL和数据库中的URL不一样,是不是要自己重新设置存储URL? [图片] login文件代码: wxml代码: <form catchsubmit="formSubmit"> <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar"> <image class="avatar" src="{{avatarUrl}}"></image> </button> <view class="row"> <view class="text">用户名</view> <input type="nickname" class="weui-input" placeholder="请输入昵称"/> </view> <button class="for-button" type="primary" formType="submit">授权</button> </form> js代码: const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' const db = wx.cloud.database(); const app=getApp(); Page({ /** * 页面的初始数据 */ data: { avatarUrl: defaultAvatarUrl, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, onChooseAvatar(e) { // console.log(e); const { avatarUrl } = e.detail this.setData({ avatarUrl, }) }, formSubmit(e){ wx.login({ success (res) { // console.log(res); const code=res.code; if (code) { app.setcode(code); db.collection("user").add({ data:{ code: res.code, avatarUrl:defaultAvatarUrl, } }) wx.showToast({ title:"恭喜!授权成功!" }); setTimeout(()=>{ wx.navigateBack({}); },1500) } else { console.log('登录失败!' + res.errMsg) } } }) }, app.js代码: //app.js App({ onLaunch: function () { if(!wx.cloud){ console.error('请使用2.2.3或以上的基础库以使用云能力') }else{ wx.cloud.init({ traceUser:true, }) } // 展示本地存储能力 const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) this.globalData={} this.loadcode(); }, //判断是否已经授权 loadcode:function(){ const that=this; wx.getSetting({ success:res=>{ const iscode=res.authSetting['scope.code']; if(iscode){ wx.code({ success:res=>{ const code=res.code; that.globalData.code=code; } }) } } }) }, //用户授权 is_login: function(){ if(this.globalData.code){ return true; }else{ return false; } }, setcode:function(code){ this.globalData.code=code; }, })
2022-09-27 - 用wx.login修改授权接口?
之前是用wx.getuserinfo做的用户授权,因为这些接口都要被废弃,所以就用wx.login改接口,现在问题是,有些地方我需要判断用户有没有授权,但是点击授权,提示说授权成功,但是再次打开页面时还会弹出窗口。这个授权做是全局配置,在页面中引用,还有就是头像图片能够插入到数据库中,用户名没有插入。 [图片][图片][图片] login文件代码(授权页面): <form catchsubmit="formSubmit"> <button class="avatar-wrapper" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar"> <image class="avatar" src="{{avatarUrl}}"></image> </button> <view class="row"> <view class="text">用户名</view> <input type="nickname" class="weui-input" placeholder="请输入昵称"/> </view> <button type="primary" style="margin-top:40rpx;margin-bottom: 20rpx;" formType="submit">授权</button> </form> js代码: const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' const db = wx.cloud.database(); const app=getApp(); Page({ /** * 页面的初始数据 */ data: { avatarUrl: defaultAvatarUrl, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, onChooseAvatar(e) { // console.log(e); const { avatarUrl } = e.detail this.setData({ avatarUrl, }) }, formSubmit(e){ console.log(e); const nickName=e.detail.value.nickName; wx.login({ success (res) { console.log(res); if (res.code) { db.collection("user").add({ data:{ code: res.code, avatarUrl:defaultAvatarUrl, nickName:nickName } }) wx.showToast({ title:"恭喜!授权成功!" }); setTimeout(()=>{ wx.navigateBack({}); },1500) } else { console.log('登录失败!' + res.errMsg) } } }) }, app.js代码: //app.js App({ onLaunch: function () { if(!wx.cloud){ console.error('请使用2.2.3或以上的基础库以使用云能力') }else{ wx.cloud.init({ traceUser:true, }) } // 展示本地存储能力 const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) this.globalData={} this.loadlogin(); }, //判断是否已经授权 loadlogin:function(){ const that=this; wx.getSetting({ success:res=>{ const islogin=res.authSetting['scope.login']; if(islogin){ wx.login({ success:res=>{ const login=res.login; that.globalData.login=login; } }) } } }) }, //用户授权 is_login: function(){ if(this.globalData.login){ return true; }else{ return false; } }, setUserInfo:function(login){ this.globalData.login=login; } })
2022-09-25