小程序模板網(wǎng)

16.12.21微信小程序0.11.122100版本更新問(wèn)題

發(fā)布時(shí)間:2018-04-08 11:54 所屬欄目:小程序開(kāi)發(fā)教程
本文作者:七月在夏天 ,來(lái)自知乎原文地址:https://zhuanlan.zhihu.com/p/24495203

昨天朋友跑過(guò)來(lái)說(shuō)微信更新了6.3.2版本,真機(jī)運(yùn)行小程序有不少的問(wèn)題。主要集中在wx.redirectTo方法無(wú)法正常跳轉(zhuǎn),且沒(méi)有任何錯(cuò)誤提示。但模擬器上是沒(méi)有任何問(wèn)題的。

我當(dāng)時(shí)就很“緊張”。小程序又要搞事兒了!

果然今天下午,官方更新了122100版本,一共有90幾處改動(dòng)。這里先不一一列舉了。放在另外的文章里。這里主要指出本次更新后對(duì)我們項(xiàng)目的影響。

一 redirectTo和navigateTo不能再跳轉(zhuǎn)到帶有tab選項(xiàng)卡的頁(yè)面

首先是welcome歡迎頁(yè)面無(wú)法跳轉(zhuǎn)到文章頁(yè)面的問(wèn)題。這是因?yàn)樾〕绦蛐略隽艘粋€(gè)接口wx.switchTab。這個(gè)接口是專門(mén)用來(lái)跳轉(zhuǎn)到帶有tabbar的頁(yè)面。

但我不理解的是,你新增接口為什么要更改以前的接口。以前用redirectTo和navigateTo都是可以跳轉(zhuǎn)到帶有tabbar的頁(yè)面。但更新后redirectTo和navigateTo均不可以跳轉(zhuǎn)了。而且沒(méi)有給出明顯的錯(cuò)誤提示。但如果你有fail方法接收錯(cuò)誤消息的話,fail方法的參數(shù)里會(huì)含有一個(gè)錯(cuò)誤提示的,非常隱蔽。更改后的代碼如下:

代碼頁(yè):welcome.js


					
  1. Page({
  2. onTap: function (event) {
  3. wx.switchTab({
  4. url: "../posts/post"
  5. });
  6.  
  7. }
  8. })
  9.  

請(qǐng)注意switchTab只能跳轉(zhuǎn)到帶有tab的頁(yè)面,不能跳轉(zhuǎn)到不帶tab的頁(yè)面!跳轉(zhuǎn)不帶tab的頁(yè)面還是需要使用redirect或者navigate!所以,如果如果你的post頁(yè)面還沒(méi)有加入tab選項(xiàng)卡,請(qǐng)依然使用redirect或者navigate!

二 Page的onLoad函數(shù)里不可以再直接對(duì)data變量賦值做數(shù)據(jù)綁定

這又是一個(gè)很無(wú)理的改動(dòng),應(yīng)該是更改了綁定數(shù)據(jù)的時(shí)機(jī)。之前版本,在onLoad函數(shù)里不需要使用this.setData方法來(lái)做數(shù)據(jù)更新,只需要使用this.data = { key:value} 即可更新數(shù)據(jù)綁定變量。這樣做的方法我在課程里也分析過(guò),是因?yàn)閛nLoad函數(shù)執(zhí)行是在數(shù)據(jù)綁定初始化之前。

但此次更新后這種方法失效了,造成文章頁(yè)面無(wú)法正常初始化數(shù)據(jù)。請(qǐng)同學(xué)們將所有用this.data做數(shù)據(jù)綁定的地方,更新成this.setData問(wèn)題即可解決。舉一個(gè)代碼的例子:

代碼頁(yè)面:post.js


					
  1. Page({
  2. data: {
  3. },
  4. onLoad: function () {
  5.  
  6. // this.data.postList = postsData.postList
  7. this.setData({
  8. postList:postsData.postList
  9. });
  10. },

三 wx.request 方法的Content-Type參數(shù)

這又是很奇葩的一個(gè)問(wèn)題。最早的版本使用content-type:application/json 即可成功訪問(wèn)豆瓣的數(shù)據(jù)。112301版本更新后,application/json參數(shù)不可以使用了。但形如content-type: ‘ ’,content-type:xxx,content-type:aaaaaaa 都可以成功調(diào)用。

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

請(qǐng)同學(xué)們把相關(guān)方法更改成 content-type:json或者content-type:xxxxxx,都可以成功調(diào)用豆瓣api。下面是代碼示例:



						

						
  1. function http(url, callBack) {
  2. wx.request({
  3. url: url,
  4. method: 'GET',
  5. header: {
  6. "Content-Type": "json"
  7. },
  8. success: function (res) {
  9. callBack(res.data);
  10. },
  11. fail: function (error) {
  12. console.log(error)
  13. }
  14. })
  15. }

3個(gè)問(wèn)題解決后,項(xiàng)目就沒(méi)問(wèn)題了。大家以上方法做對(duì)照修改。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://m.u-renovate.com/wxmini/doc/course/23153.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×