微信小程序使用navigateBack返回上一页时如何传递参数

需求

A页面的数据跳转到B页面,B页面将A页面传递过来的数据进行处理后,将处理结果返回给A页面,并且路由栈中不会多余页面

尝试办法

复制代码
var pages = getCurrentPages();
var prevPage= pages[pages.length - 2]; //上一个页面
prevPage.setData({
    img_url: e.tempFilePath,
    isShow: false,
});
wx.navigateBack({
    delta: 1,
});
复制代码

经过尝试发现传递给上一个页面数据会丢失,目前还没找到具体原因

解决办法

通过uni.$emit、uni.$on、uni.$off实现

复制代码
// B页面
uni.$emit("clipImg", {
    isShow: false,
    img_url: e.tempFilePath,
});
// A页面
onShow() {
    uni.$on("clipImg", (data) => {
      this.img_url = data.img_url;
      this.isShow = data.isShow;
    });
},
onUnload() {
   uni.$off("clipImg");
},
复制代码

 

posted @   南无、  阅读(1161)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-12-09 git常用命令-分支
2022-12-09 git常用命令-提交代码
点击右上角即可分享
微信分享提示