uni-app页面跳转时(uni.navigateTo)传参(过长)

方法一:

1、在起始页面跳转到test.vue页面并传递参数

//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({
    url: 'test?id=1&name=uniapp'
});

2、在test.vue页面接受参数

export default {
    onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
        console.log(option.id); //打印出上个页面传递的参数。
        console.log(option.name); //打印出上个页面传递的参数。
    }
}

方法二(传递json对象):

url有长度限制,太长的字符串会传递失败,可改用窗体通信、全局变量,另外参数中出现空格等特殊字符时需要对参数进行编码,如下为使用encodeURIComponent对参数进行编码的示例。


// 在test.vue页面接受参数
onLoad: function (option) {
    const item = JSON.parse(decodeURIComponent(option.item));
}

代码示例:

/*跳转到详情页*/
gotoDetail(item){
  uni.navigateTo({
    //url: '/pages/index/device/detail/detail?code='+item.adapterCode+'&type='+item.type+'&id='+item.id
    url: '/pages/index/device/detail/detail?item='+encodeURIComponent(JSON.stringify(item))
  })
},
onLoad(option) {
  const item = JSON.parse(decodeURIComponent(option.item));
  console.log(item)
},

你可能感兴趣的:(uni-app页面跳转时(uni.navigateTo)传参(过长))