uniapp 里 onshow 接收不到参数如何解决?

2022-12-02 15:48:20 浏览数 (2)

场景描叙:

正常页面 onLoad 可以接收上个页面的参数

代码语言:javascript复制
onLoad(e) {

//获取上个页面传递的地址栏参数 id 

console.log(e.id);

}

但是 onLoad() 页面只会加载一次。

现在有这么一个应用场景:

A 页面跳转到 B 页面,B页面处理完再回到 A页面时,A页面不会再次触发 onLoad().

当前页面如果是其他页面的回调(return)页面时,其他页面跳转回调页面时的传参如何获取呢?

这时需要用到 onShow() 的钩子函数来处理页面栈数据。

代码语言:javascript复制
onShow(){
    let allPages = getCurrentPages(); //获取当前页面栈的实例;
	console.log(allPages);
	let lastPages = allPages.length - 1; // 获得倒数第二个元素的索引;
	console.log(lastPages);
	let option = allPages[lastPages].options; // 获得上个页面传递的参数;
	console.log(option);
}

此时,按照这样的方式就可以从 option 中获取到地址栏传参了。

0 人点赞