微信小程序 122100版本更新问题解决方案


Posted in Javascript onDecember 22, 2016

微信小程序版本更新问题

昨天朋友跑过来说微信更新了6.3.2版本,真机运行小程序有不少的问题。主要集中在wx.redirectTo方法无法正常跳转,且没有任何错误提示。但模拟器上是没有任何问题的。
我当时就很“紧张”。小程序又要搞事儿了!

果然今天下午,官方更新了122100版本,一共有90几处改动。这里先不一一列举了。放在另外的文章里。这里主要指出本次更新后对我们项目的影响。

一, redirectTo和navigateTo不能再跳转到带有tab选项卡的页面

首先是welcome欢迎页面无法跳转到文章页面的问题。这是因为小程序新增了一个接口wx.switchTab。这个接口是专门用来跳转到带有tabbar的页面。

但我不理解的是,你新增接口为什么要更改以前的接口。以前用redirectTo和navigateTo都是可以跳转到带有tabbar的页面。但更新后redirectTo和navigateTo均不可以跳转了。而且没有给出明显的错误提示。但如果你有fail方法接收错误消息的话,fail方法的参数里会含有一个错误提示的,非常隐蔽。更改后的代码如下:

代码页:welcome.js

Page({
  onTap: function (event) {    
    wx.switchTab({
      url: "../posts/post"
    });
    
  }
})

请注意switchTab只能跳转到带有tab的页面,不能跳转到不带tab的页面!跳转不带tab的页面还是需要使用redirect或者navigate!所以,如果如果你的post页面还没有加入tab选项卡,请依然使用redirect或者navigate!

二 ,Page的onLoad函数里不可以再直接对data变量赋值做数据绑定

这又是一个很无理的改动,应该是更改了绑定数据的时机。之前版本,在onLoad函数里不需要使用this.setData方法来做数据更新,只需要使用this.data = { key:value} 即可更新数据绑定变量。这样做的方法我在课程里也分析过,是因为onLoad函数执行是在数据绑定初始化之前。

但此次更新后这种方法失效了,造成文章页面无法正常初始化数据。请同学们将所有用this.data做数据绑定的地方,更新成this.setData问题即可解决。举一个代码的例子:

代码页面:post.js

Page({
 data: {
 },
 onLoad: function () {

  // this.data.postList = postsData.postList
  this.setData({
    postList:postsData.postList
   });
 },

三, wx.request 方法的Content-Type参数

这又是很奇葩的一个问题。最早的版本使用content-type:application/json 即可成功访问豆瓣的数据。112301版本更新后,application/json参数不可以使用了。但形如content-type: ‘ ',content-type:xxx,content-type:aaaaaaa 都可以成功调用。

最新的0.11.122100版本 content-type:' ' 形式不可以用了。但其他任意形式都可以用,只要不是空字符串和application/json。

请同学们把相关方法更改成 content-type:json或者content-type:xxxxxx,都可以成功调用豆瓣api。下面是代码示例:

function http(url, callBack) {
 wx.request({
  url: url,
  method: 'GET',
  header: {
   "Content-Type": "json"
  },
  success: function (res) {
   callBack(res.data);
  },
  fail: function (error) {
   console.log(error)
  }
 })
}

3个问题解决后,项目就没问题了。大家以上方法做对照修改。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
图片完美缩放
Sep 07 Javascript
收藏Javascript中常用的55个经典技巧
Aug 12 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
jquery改变tr背景色的示例代码
Dec 28 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
Jan 05 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
JS闭包与延迟求值用法示例
Dec 22 #Javascript
jQuery实现两个select控件的互移操作
Dec 22 #Javascript
JS 调用微信扫一扫功能
Dec 22 #Javascript
Vue实现双向绑定的方法
Dec 22 #Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 #Javascript
Vue.js双向绑定实现原理详解
Dec 22 #Javascript
BootStrap Table对前台页面表格的支持实例讲解
Dec 22 #Javascript
You might like
基于mysql的论坛(6)
2006/10/09 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Python读写配置文件的方法
2015/06/03 Python
python简单实现计算过期时间的方法
2015/06/09 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
2014年五一活动策划方案
2014/03/15 职场文书
升旗仪式主持词
2014/03/19 职场文书
售后服务承诺书范文
2014/03/26 职场文书
校园文明倡议书
2014/05/16 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
劳模先进事迹材料
2014/12/24 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
python turtle绘图
2022/05/04 Python
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android