- 为什么定义在data内的变量在函数内改变不了(只能读出默认值)?
我定义了一个复选框,value绑定的是js中data定义的变量allCheck,用于checkgroup的bindchange函数传到js进行判断。 js的data: [图片] wxml: [图片] 但为什么js读取到data的变量allCheck始终是默认值,赋了值的allCheck读出来还是默认值,但是却能成功被if语句判断,难道是data的作用域问题?始终想不通,欢迎各位大牛指点一下,谢谢~ [图片] [图片]
2022-06-08 - 复选框checkbox怎样才能提交数据到后台?
想请问一下,我用form表单提交checkbox,checkgroup使用name作为key,点击按钮触发submit函数后,按理说应该能通过res.detail.value获取到checkgroup的值,为什么js打印出来是空的,到底哪里写错了- - wxml: [图片] 其中,wx:for的数据是数据库数据,这样写对吗?因为我看别人都把wx:for写到checkbox里,应该没影响吧? js: [图片] console: [图片]
2022-05-24 - 使用form表单提交checkbox时,提交的数据是选中的checkbox还是所有checkbox?
如题,想问一下,使用form表单提交复选框checkbox时,提交的数据是选中的checkbox还是所有的checkbox?因为form是根据组件的value提交,如果直接提交选中的复选框就方便得多,不用再用checkgroup的bindchange判断了
2022-05-22 - 我想请问一下获取新用户信息到底怎么实现比较合理?
看了很多帖子,包括官方文档给出的说明,但都看不到一个简明的回答或是一个完整的demo。 问题就是,我的逻辑是要获取到用户信息保存到数据库,按文档说明的话 wx.getUserInfo可以在用户已授权的情况下静默获取到用户的信息,这个我应该没理解错吧?所以我在小程序首页onload函数里都作此判断,当登录态过期后通过wx.login+wx.request将用户信息发到后台更新数据库内该用户的记录。 但如何处理获取新用户的信息?按这个意思是无法用wx.getUserInfo获取到新用户信息的,是要用button让用户点击后授权对吧?就是这个 <button open-type="getUserInfo" bindgetuserinfo="onGotUserInfo">登录</button> 怎么获取逻辑怎么写我看懂了,问题是大家都没说一下这个按钮放在哪里?是进入小程序后独自放一张页面上面放一个这样的授权按钮吗?(可是官方好像不允许这样子影响用户体验)还是让用户点击页面上的按钮时自动弹出?(这个怎么实现)要是能让新用户点击授权的按钮实现后,以后就不再需要这个按钮了吧?(还是有点晕) 有没有大佬实现了或是过审了的讲一下呗~感谢!!!
2020-04-13 - 用this.setData给数组下标index赋值,第二次赋值为何index保存的是数组Array?
我的data里的数据定义如下: data: { images: [], //保存图片 }, ① onLoad函数当从后台拿到图片数据时,用了this.setData赋值给images以更新页面显示: const downloadTask = wx.downloadFile({ url: '略', success: function (res) { // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容 console.log(res) if (res.statusCode === 200) { that.setData({ 'images[0]': res.tempFilePath }) } } }) ② 但因为业务逻辑是用户可再次上传新照片,所以此时用户上传的新照片也用this.setData赋值: uploadImg: function () { var that = this wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: function (res) { console.log(res.tempFilePaths) that.setData({ // images: that.data.images.concat(res.tempFilePaths) 'images[0]': res.tempFilePaths }) }, }) }, 然后用户提交数据的函数用了wx.uploadFile: modifyCourierForm: function (res) { var that = this for (var i = 0; i < that.data.images.length; i++) { wx.uploadFile({ url: '略', filePath: that.data.images[i], name: 'images', formData: { }, success: function (res) { } }) } }, 问题在于,当页面加载后,会进行一次赋值(从后台调出用户保存的图片) that.setData({ 'images[0]': res.tempFilePath }) 若用户无再上传新照片也就是没有在setData进行赋值的话(只执行了①代码未执行②代码), filePath: that.data.images[i],的路径是正确的,提交时控制台输出的数据是这样的 [图片] 若用户进行了上传新照片的操作,也就是对image[0]进行两次赋值操作(①和②块的代码都有执行),那么提交时控制台是 [图片] [图片] 为啥赋值两次下标为0的位置保存的就是数组了?而且提交路径须改成filePath: that.data.images[i][0]才可以正确提交?是我的赋值方法写的不对吗? 小白刚入门不久求教。
2020-03-09