第一种方式 主要是小程序使用-使用setData设置数据
这个在之前的分享【小程序uni.navigateTo频繁使用存在问题及解决方案】中也详细介绍过 这块之前截取一小部分总结
1.返回页面之前的携带数据设置
//设置携带的数据
currentPages[prePagesRoute].setData({
myNewAddressData: JSON.stringify(infoData),
});
//返回指定的单层级或者多层级页面
uni.navigateBack({
delta: 3, //返回指定的路由位置的下标
});
2.返回页面之后获取所携带的数据
export default {
onShow() {
//获取返回携带的数据 在onShow的周期中获取 因为这个周期是显示时触发 所以可以加个是否为空的判断条件--自己处理就好
const currentPages = getCurrentPages();
const { myNewAddressData } = currentPages[currentPages.length - 1].data;
console.log(JSON.parse(myNewAddressData))
},
第二种方式 小程序和h5移动端都可以使用- 使用 uni. e m i t 和 u n i . emit和uni. emit和uni.on
1.返回页面之前的携带数据设置
//设置一下返回需要携带的数据
uni.$emit("myNewAddressData", {
myNewAddressData: JSON.stringify(infoData),
});
//返回页面
uni.navigateBack({
delta: 3, //返回指定的路由位置的下标
});
2.返回页面之后获取所携带的数据
onShow() {
//监听返回来的并获取数据
uni.$on("myNewAddressData", (res) => {
console.log("获取返回的地址", JSON.parse(res.myNewAddressData));
// 清除监听
uni.$off("myNewAddressData");
});
}