開發小程序和uni-app時,遇到需要在navigaor
組件中傳遞對象參數到下一個頁面的需求,傳遞對象時如果不JSON.stringify
的話,接收到的對象會被轉化成[object,object]
形式。但是使用字符串化往往還會帶來另一個問題,那就是超出規定的長度。那麼怎麼解決呢?方案如下,兩步走:
1.使用encodeURIComponent以及JSON.stringify()
方法對對象進行字符串化和編碼,這樣可以控制url參數的長度,參考示例代碼(uni-app書寫方式,微信小程序自己改。)
<navigator :url="'/pages/base/baseEdit/baseEdit?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
2.接受信息的頁面使用JSON.parse()以及decodeURIComponent()
接收和解碼參數。
onload(option){
const item = JSON.parse(decodeURIComponent(option.item));
}
上述兩步即可解決url傳遞的對象的被編碼和長度超長問題了,本人項目中即使用此種方法,你懂的,這亞子都搞不定就雨我無瓜了
。