wx.navigateTo传参后接收参数不完整
[代码]data: {[代码][代码] [代码][代码]arry:[代码][代码]"crmAccountDetail?queryBean="[代码][代码],[代码][代码]},[代码] [代码]handleTap: [代码][代码]function[代码][代码]() { [代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]'../search/search?queryBean='[代码] [代码]+ JSON.stringify([代码][代码]this[代码][代码].data.arry),[代码][代码] [代码][代码]})[代码][代码]},[代码]但是在接收界面onLoad的时候,接收的值是被从?往后截取掉的 经过测试,把?去掉,接收的值也会把=往后截取掉的 [代码]onLoad: [代码][代码]function[代码][代码](options) {[代码][代码] [代码][代码]console.log([代码][代码]"当前的searchObj是:"[代码] [代码]+ options.queryBean);[代码][代码]//当前的searchObj是:"crmAccountDetail[代码][代码] [代码][代码]this[代码][代码].data.searchObj = JSON.parse(options.queryBean); [代码][代码]//解析得到对象[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]searchObj: JSON.parse(options.queryBean)[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码] [图片] 百度搜索到的内容: 因为不能上链接,所以就把内容复制过来了。原作者:韦弦zhy [图片] 微信小程序导航参数中含有问号 参数含有问号怎么办.jpg 有时从一个页面导航到另一个页面需要携带参数,而正巧的是,参数中含有问号(?),此时,后面的页面在[代码]onLoad: function (options)[代码]中是拿不到我们想要的数据的比如: wx.navigateTo({
url: "../about/about?a=3?3"
})我们拿到的options中却是: {a=3}后面的数据直接丢失了 解决方法有三:一、将该参数设为全局变量var app = getApp()app.globalData.paramsName = " "然后在需要的界面去取 二、存入storage wx.setStorageSync("paramName", "paramValue")然后在需要的界面使用 wx.getStorage({
key: 'paramName',
success: function(res) {
console.log(res.data)
},
})三、使用escape转码 和 unescape解码 let data = escape("4?4")
wx.navigateTo({
url: "../about/about?a=" + data }) onLoad: function (options) {
console.log(options)
let a = options.a
a = unescape(a)
console.log(a)
}四和三一样,还可以使用 [代码]encodeURIComponent[代码] 和 [代码]decodeURIComponent[代码]
这就是小程序中导航的参数含有?的解决方案,如果还有其他好的方法,欢迎留言交流。