navigateTo怎么和tabBar实现同时跳转
来源:互联网 发布:淘宝金丝绒裙子图片 编辑:程序博客网 时间:2024/06/03 18:37
链接:https://zhuanlan.zhihu.com/p/24495203
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
昨天朋友跑过来说微信更新了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个问题解决后,项目就没问题了。大家以上方法做对照修改。
——————————————————2017年1月4日更新——————————————
关于input组件
在旧版本里,input的bindblur事件,不会响应模拟器中的回车事件。
但微信又偷偷的更改了这个规则,最新的122100版本中,bindblur可以响应回车事件了。
————————————————————17.1.4更新——————————————
122100版本为input事件新增了bindconfirm事件,不需要再使用别扭的bindchange或者是bindblur来作为键盘完成的触发事件,请使用bindconfirm。
电影搜索位置的input组件,课程里使用的是bindblur,请更改为bindconfirm。
- navigateTo怎么和tabBar实现同时跳转
- xcx: tabBar的pagePath与wx.navigateTo中url引用相同页面导致无法跳转
- 小程序 wx.navigateTo和wx.redirectTo 不跳转问题
- 微信小程序 wx.navigateTo和wx.redirectTo 不跳转问题
- navigation的Title和TabBar的Title不同时怎么解决
- wx.navigateTo 不跳转问题
- IOS中同时使用TabBar和Navigation
- 微信小程序——wx.navigateTo中url无法跳转问题(app.json中配置的tabBar与wx.navigateTo中url引用相同页面导致)(2017/12)
- tabbar和navigation的结合(跳转)
- wx.navigateTo/wx.redirectTo 不能跳转
- 微信小程序wx.navigateTo页面不跳转
- 小程序 wx.navigateTo跳转不了
- mybatis怎么实现对象参数和注解参数同时传入
- 两种方法实现类微博tabBar,并跳转页面隐藏
- iOS -- 点击button实现tabbar视图控制器跳转
- Spinner下拉实现省市县同时跳转
- 点击tabBar跳转
- 页面跳转隐藏TabBar
- spring 注解与xml双重配置是否可行?
- ST17H26使用tea注意事项
- js实现数据的excel下载
- Java基础总结
- phpstudy启动服务出现丢失MSVCR110.dll提示的解决办法
- navigateTo怎么和tabBar实现同时跳转
- PCIE 设备扫描的过程
- javaScript基本类型和引用类型
- SMP与用户画像
- Android AIDL流程学习
- 史上最简单的 IntelliJ IDEA 教程
- Android解惑之Handler为什么需要是static的
- 阿里云2核4G服务器ECS三年1650元!
- 关于WSO2 ESB