uni.navigateTo返回携带参数的两种方式

第一种方式 主要是小程序使用-使用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. emituni.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");
    });
  }

猜你喜欢

转载自blog.csdn.net/qq_44472790/article/details/117133345