请问小程序开发中,遇到一个不知道怎么处理的事,想请大家帮忙给个思路?

image.png

image.png

image.png

我有上图三个页面,跳转逻辑依次排列,

当我到第三张图,开始地图选点的时候 选择完点击确认选点,这里会自动回到图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.5k
1 个回答

图2的缓存你用完了可以删除呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏