传单个参数,如下:
参数传递:
wx.navigateTo({
url: '../identify/identify?test=' + 'hello',
})
在下个identify页面获取时在onload方法中获取具体如下:
onload(option){
if (option && option.test) {
// 获取到上个页面传递的参数
let temp = option.test
}
}
传递多个参数
参数传递:
wx.navigateTo({
url: '../identify/identify?test=' + 'hello&test1=' + 'hi',
})
下个identify页面获取时在onload方法中获取具体如下:
if (option) {
// 获取到上个页面传递的参数
let temp = option.test
let temp1 = option.test1
}
}
当传递的参数为对象时
注意:
-
传递的参数为对象时,在下个页面无法直接获取,必须使用JSON.stringify()转换为字符串然后在下个页面使用JSON.parse()还原为对象;
-
当传递的对象数据中含有特殊字符串时,在下个页面使用JSON.parse()还原为对象时会报错。需要在上个页面将对象转化为字符串后使用encodeURIComponent进行编码,然后在下个页面先用decodeURIComponent进行解码在还原为对象。
具体操作如下:
参数传递:
let objTest = {
name:'jxd',
sex:'男',
age:'18'
}
objTest = JSON.stringify(objTest) // 转为字符串
wx.navigateTo({
url: '../identify/identify?test=' + encodeURIComponent(objTest), // 编码
})
下个identify页面获取时在onload方法中获取具体如下:
if (option && option.test) {
// 获取到上个页面传递的参数
let temp = decodeURIComponent(option.test) // 解码
temp = JSON.parse(temp) // 还原为对象
…… // 正常使用
}