微信小程序 122100版本更新問題解決方案
微信小程序版本更新問題
昨天朋友跑過來說微信更新了6.3.2版本,真機運行小程序有不少的問題。主要集中在wx.redirectTo方法無法正常跳轉,且沒有任何錯誤提示。但模擬器上是沒有任何問題的。
我當時就很“緊張”。小程序又要搞事兒了!
果然今天下午,官方更新了122100版本,一共有90幾處改動。這里先不一一列舉了。放在另外的文章里。這里主要指出本次更新后對我們項目的影響。
一, redirectTo和navigateTo不能再跳轉到帶有tab選項卡的頁面
首先是welcome歡迎頁面無法跳轉到文章頁面的問題。這是因為小程序新增了一個接口wx.switchTab。這個接口是專門用來跳轉到帶有tabbar的頁面。
但我不理解的是,你新增接口為什么要更改以前的接口。以前用redirectTo和navigateTo都是可以跳轉到帶有tabbar的頁面。但更新后redirectTo和navigateTo均不可以跳轉了。而且沒有給出明顯的錯誤提示。但如果你有fail方法接收錯誤消息的話,fail方法的參數(shù)里會含有一個錯誤提示的,非常隱蔽。更改后的代碼如下:
代碼頁:welcome.js
Page({ onTap: function (event) { wx.switchTab({ url: "../posts/post" }); } })
請注意switchTab只能跳轉到帶有tab的頁面,不能跳轉到不帶tab的頁面!跳轉不帶tab的頁面還是需要使用redirect或者navigate!所以,如果如果你的post頁面還沒有加入tab選項卡,請依然使用redirect或者navigate!
二 ,Page的onLoad函數(shù)里不可以再直接對data變量賦值做數(shù)據(jù)綁定
這又是一個很無理的改動,應該是更改了綁定數(shù)據(jù)的時機。之前版本,在onLoad函數(shù)里不需要使用this.setData方法來做數(shù)據(jù)更新,只需要使用this.data = { key:value} 即可更新數(shù)據(jù)綁定變量。這樣做的方法我在課程里也分析過,是因為onLoad函數(shù)執(zhí)行是在數(shù)據(jù)綁定初始化之前。
但此次更新后這種方法失效了,造成文章頁面無法正常初始化數(shù)據(jù)。請同學們將所有用this.data做數(shù)據(jù)綁定的地方,更新成this.setData問題即可解決。舉一個代碼的例子:
代碼頁面:post.js
Page({ data: { }, onLoad: function () { // this.data.postList = postsData.postList this.setData({ postList:postsData.postList }); },
三, wx.request 方法的Content-Type參數(shù)
這又是很奇葩的一個問題。最早的版本使用content-type:application/json 即可成功訪問豆瓣的數(shù)據(jù)。112301版本更新后,application/json參數(shù)不可以使用了。但形如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個問題解決后,項目就沒問題了。大家以上方法做對照修改。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Three.js?Interpolant實現(xiàn)動畫插值
這篇文章主要為大家介紹了Three.js?Interpolant實現(xiàn)動畫插值示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02