我有上图三个页面,跳转逻辑依次排列,
当我到第三张图,开始地图选点的时候 选择完点击确认选点,这里会自动回到图2,也就是选择收货地址页面,然后在图2的onshow生命周期中接受选择的位置信息数据, 但是实际上我是想直接回到图1的,并把数据传过去的,
当在地图选点页面点击确认选点后,我在图2的onshow 生命周期中写了如下代码:
onShow: function onShow() {
const chooseLocation = requirePlugin('chooseLocation');
const location = chooseLocation.getLocation();
console.log(location,'location89898')
// var map_city = wx.getStorageSync('map_city');
// wx.setStorageSync('map_city', location);
if(location != undefined){
// var pages = getCurrentPages();
// var prevpage = pages[pages.length - 2];
// prevpage.setData({
// back_latitude: location.latitude,
// back_longitude: location.longitude,
// back_addrss_all:location.address
// });
wx.setStorageSync('map_city', location);
// wx.switchTab({
// url: '/pages/my_city/index'
// });
// wx.navigateBack({
// //返回
// delta: 2
// })
}
}
我是用了两种方法,
一种是在图2 onshow生命周期中本地存储数据,然后再wx.switchTab回到图1
还有一种就是在图2 onshow生命周期中 直接通过prevpage.setData 传递参数 然后直接返回前两页
wx.navigateBack({
delta: 2
})
这两种方法都能让我在图1 接收到数据,但是有个问题就是,因为我在图2的生命周期中,加了返回页面或者直接wx.switchTab回到图1 但是我发现,图2的onshow 接收的数据会一直缓存,我现在无法再通过图1点击回到图2,因为始终会触发返回图1的事件,这种情况,不知道到底如何处理比较合适,清除本地存储 感觉也不合适,不知道小程序有什么类似清除onshow生命周期的缓存的方法吗?
图2的缓存你用完了可以删除呀