navigateBack传值

应用背景:
A页面有表单,需要跳转到B页面,然后从B页面获取数据再跳转回A页面并携带数据过去

最开始想到的是,使用navigateTo携带参数从B页面跳转回A页面,但是跳转回去之后A页面之前填的表单值都消失了,这肯定是不行的。
后来想用navigateBack返回上一页,因为navigateBack返回不会刷新页面,这样表单值就不会因为跳转而消失了。但是navigateBack怎么携带数据呢,试了一下使用storage存储数据,但是,在A页面中onLoad获取到数据并显示在页面时,获取到的数据在页面上并不显示,因为onLoad只走一次,可以在onShow里面操作,也可以使用以下的方法

let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。
 
let prevPage = pages[ pages.length - 2 ];  
 
//prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面,-3是上上个页面以此类推。
 
prevPage.setData({  // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
 
    id:e.currentTarget.dataset.id,
 
    istype : e.currentTarget.dataset.istype,
 
    isaddress : e.currentTarget.dataset.isaddress
 
})
 
//上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。
 
 
//返回上一个页面。
wx.navigateBack({
     delta: 1  // 返回上一级页面。
})
 
//此时页面数据已经改变为我们传递过来的数据。如果想要返回之后处理这些数据,那么要在onShow函数里执行,因为我们执行的是返回,所以不会触发onLoad函数,所以我们要在onShow里执行我们想要使用的函数。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值