网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序路由跳轉傳參wx.navigateTo 字符串轉對象報錯解決

發布時間:2021-06-15 08:57 所屬欄目:小程序開發教程
官方文檔地址:https://developers.weixin.qq.com ... /wx.navigateTo.html

 

(一)問題
 
看了文檔之后,傳一個參數沒有問題,就是如果你路由跳轉想傳對象,必須將對象轉換成字符串,
  1. JSON.stringify()

復制代碼
當后臺數據 較復雜的時候,比如傳了個富文本格式的字符串

 

A頁面將其轉換成字符串,B頁面進行接收
  1. //A頁面傳參    item是對象
  2. var detailsData= JSON.stringify(item);
  3. wx.navigateTo({
  4.       url:'/pages/plaza/project_intro/project_intro?detailsData='+detailsData
  5.     })

復制代碼
B頁面接收參數,console打印發現 字符串好像被截斷了許多
  1.   onLoad: function (options) {
  2.     console.log(options);
  3.   }

復制代碼
 
  1.   onLoad: function (options) {
  2.     var detailsDataObj = JSON.parse(options.detailsData);
  3.     console.log(detailsDataObj);
  4.   }

復制代碼
將其轉換成對象就會報錯。。。

 

(二)解決

看了其他博文說是,由于對象中包含 url 屬性,JSON.parse 方法無法解析包含“?“、”&”之類的字符

最后試了一下 通過js的一個方法進行編碼解碼。
  1. encodeURIComponent() 函數可把字符串作為 URI 組件進行編碼。
  2.  
  3. decodeURIComponent() 函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。


A頁面進行 編碼再傳參
  1. var detailsData= JSON.stringify(item);
  2. //直接轉字符串 ,在下個頁面轉對象的時候會報錯,不知道是長度限制還是字符串有問題,所以使用encodeURIComponent轉碼
  3. detailsData = encodeURIComponent(detailsData);
  4. wx.navigateTo({
  5.      url:'/pages/plaza/project_intro/project_intro?detailsData='+detailsData
  6.   })

B頁面進行 解碼再讀取參數
  1.   onLoad: function (options) {
  2.     console.log(options);
  3.     var detailsDataStr = decodeURIComponent(options.detailsData);
  4.     var detailsDataObj = JSON.parse(detailsDataStr);
  5.     console.log(detailsDataObj);
  6.   }

console 成功打印出參數


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/26489.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×