你这是懒加载的需求?
setData能否实现数组顶部插入数据- 需求的场景描述(希望解决的问题) 现在页面有数据如下: list:[{0},{1},{2},{3}] 往下拉滚动加载到历史数据如下: history:[{4},{5},{6},{7}] 需求: 将history拼接到list前面,并且局部刷新(避免由于数据量大,影响渲染性能) list:[{4},{5},{6},{7},{0},{1},{2},{3}] - 希望提供的能力 查过api文档,setData目前只能更新某个item或者在尾部增加app数据。 所以,希望能实现数组顶部插入数据。
2018-12-20因为添加数据是异步的,这里基本的顺序是,先打印_targets[0]后再添加元素,为什么_targets能正常打印,因为控制台打印对象只有在点开的时候才会输出对象的值,你用console.log(JSON.stringify(_targets));看看_targets是否有值?
往数组中用Push添加元素,打印出来length=0,数组为空?[图片] 如图_targets为数组,使用push 或者 splice方法添加元素后, 打印_targets能正常打印 打印_targets[0]为undefined 打印_targets.length为0 之后使用_targets时显示为空... 请问有遇到相同情况的吗? 有什么解决方法呢?
2018-12-20好像现在这个问题也没解决?
新版开发工具无法查看before,after等伪元素下面都是官方的weui样式,都是探测不到 .weui-cells::after, .weui-cells::before 伪元素都探测不到
2018-12-15一直未完善的问题,transform: translate(0, 300rpx); 300rpx前加个空格可以识别rpx
transform: translate(0,300rpx)写在内嵌样式中失效- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 - 复现路径 - 提供一个最简复现 Demo 见代码片段
2018-12-10版本问题,2.04版本camera有问题,可以切换成最新版本
takePhoto 测试环境 请问为啥报下面错误,怎么办?takePhoto() { const ctx = wx.createCameraContext() ctx.takePhoto({ quality: 'high', success(res) { console.log('success') console.log(res) }, fail(res) { console.log('takePhoto fail res') console.log(res) } }) [代码]<!-- camera.wxml --> [代码] [代码]<camera device-position="back" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera><button type="primary" bindtap="takePhoto">拍照</button><view>预览</view><image mode="widthFix" src="{{src}}"></image>[代码] Cannot read property 'mode' of undefined;at pages/take_video/video page takePhoto function TypeError: Cannot read property 'mode' of undefined
2018-11-26在bindgetuserinfo的回调函数内部获取code,既然有时间限制,如果在bindgetuserinfo之前获取code,如果一直不触发回调,code肯定过期。
button=bindgetuserinfo的点击与wx.login先后顺序之前通过 `wx.getUserInfo()` 获取用户信息时,它有个前提条件要求先 `wx.login()` 而且未过期。现在换成通过按钮触发的形式后,是在哪一个阶段获取授权code呢?是在点击按钮之前就要获取到code?还是在bindgetuserinfo的回调函数内部获取code? 在bindgetuserinfo的回调函数内部获取的code,会不会是无效的? 以为部分JS源码(mpvue): [代码] [代码][代码]export [代码][代码]default[代码] [代码]{[代码] [代码] [代码][代码]methods: {[代码] [代码] [代码][代码]async onGetUserInfo (res) { [代码][代码]// bindgetuserinfo的回调函数[代码] [代码] [代码][代码]const that = [代码][代码]this[代码] [代码] [代码][代码]const { userInfo, errMsg, encryptedData, iv } = res.target[代码] [代码] [代码][代码]if[代码] [代码](errMsg === [代码][代码]'getUserInfo:ok'[代码][代码]) {[代码] [代码] [代码][代码]wx.login({[代码] [代码] [代码][代码]success (loginRet) {[代码] [代码] [代码][代码]if[代码] [代码](loginRet[[代码][代码]'code'[代码][代码]]) {[代码] [代码] [代码][代码]that.loginAfter({[代码] [代码] [代码][代码]userInfo,[代码] [代码] [代码][代码]encryptedData,[代码] [代码] [代码][代码]iv,[代码] [代码] [代码][代码]code: loginRet[[代码][代码]'code'[代码][代码]][代码] [代码] [代码][代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]complete (loginRet) {[代码] [代码] [代码][代码]if[代码] [代码](!loginRet[[代码][代码]'code'[代码][代码]]) {[代码] [代码] [代码][代码]wx.showModal({ title: [代码][代码]'授权失败'[代码] [代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]})[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]loginAfter ({ userInfo, encryptedData, iv, code }) {[代码] [代码] [代码][代码]// 服务端通过 code 获取 session_key 再解密 decrypted 获取 openid unionid[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}[代码] [代码]</script>[代码] ============================ 补充,问题已经解决了,下面是一些心得: 在做小程序授权登录时, 不同的人有不同的实现细节, 导致有各种不一致的描述, 与他人进行沟通讨论的时候, 思想很难保持同步。 ### 微信官网登录时序图示例 ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906120150079-810857681.png) ### `wx.login()`会刷新 session_key 吗 ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906211103650-366063863.png) 下面是我连续3次测试的结果, 可以看出三个不同的 code 得到相同 session_key: ``` | code | session_key | | - | - | | 061AlTTl1NN1Xk0ZmcUl1iZ0Ul1AlTTi | eTVWziFnhu2vG+iVrjDOqA== | 071Rl0SD0Dd7Sc2hkkOD0asORD0Rl0SW | eTVWziFnhu2vG+iVrjDOqA== | 071wl53j2qtQCH0SfKZi2SVN2j2wl53d | eTVWziFnhu2vG+iVrjDOqA== ``` 我决定等待10分钟之后再去尝试: ``` code_xxx LMiKHyNLaGHidXqSsg4Ung== ``` 果然 session_key 发生了变化,这和[官网文档说明](https://developers.weixin.qq.com/miniprogram/dev/api/signature.html#wxchecksessionobject)符合: > 原文:微信不会把session_key的有效期告知开发者。我们会根据用户使用小程序的行为对session_key进行续期。用户越频繁使用小程序,session_key有效期越长。 ### 数据签名校验? ![](https://images2018.cnblogs.com/blog/1303135/201809/1303135-20180906213036296-17637551.png) 签名算法 `signature = sha1( rawData + session_key )` ,意味着两个参数都相同,或者两个参数都不同,其签名才可能一致。所有我一个大胆的尝试,如果我更改我的性别或者昵称,那么前端得到的rawData 也会发生变更,session_key 也会发生变更,才能通过签名验证。可惜的是我更改了我的用户信息之后,通过调试发现 rawData 并没有立即发生变更。 ### 我个人当前的做法 每次涉及到解密用户信息时,前端都会重新回去授权 code ,服务端使用 code 获取 session_key,然后再解密。 虽然微信小程序官网有说明 code 的有效期为5分钟,经过测试发现不止5分钟(我发现10分钟也没过期)。但是为了避免 code 过期,还是要注意相关的逻辑。 ### 总结 希望上面的几个比较重要的点能够帮助你,同时希望你留言一起讨论大家的实现区别,谢谢您的阅读!
2018-09-05scroll-view加个高度试试,子选择器多试几种,scroll-view > view{}
scroll-view在wxss中使用父子选择器失效- 当前 Bug 的表现(可附上截图) ---wxml代码 [图片] ---wxss代码 [图片] -实际表现 [图片] - 预期表现 [图片] - 复现路径 ---不知道这个是什么意思 - 提供一个最简复现 Demo ---上面已有
2018-08-29你这10点到12点是个时间段吧,还转成一个时间戳,10点到12点意义何在
日期转时间戳问题- 当前 Bug 的表现(可附上截图) 在开发者工具上这段代码能返回正确的结果 [图片] 但是在手机上返回NaN [图片] - 预期表现 希望手机上对于这段代码能有同样的表现
2018-08-17scroll-into-viewString 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
侧边分类导航需求是当我点击左边的导航类别,右边显示的就是我当前点击的类别的商品分组,不知道小程序里面有没有可以滚动到某个元素的方法,我现在用scrolltop计算还是会有误差,在不同机型上滚动距离不同,计算单位是rpx,但是scrolltop是用的px,求大佬告知有没有什么方法可以实现这个需求[图片]
2018-08-14开发者工具上看看宽度有没有可能超出100%的,没有就不停的缩小总宽度在手机上测试,比如95%,一般都是有超出的,即写法有问题
小程序页面做的是横向100%宽度,开发者工具正常,真机测试左右滑动,出现缝隙小程序页面做的是横向100%宽度,开发者工具正常,真机测试左右滑动,出现缝隙,如图,这是向左滑了一下,就出现这种情况了 [图片]
2018-08-12