请问微信小程序 为什么二次刷新页面 会导致onload 的options 获取不到?

onLoad: function onLoad(options) {
        let goods_id = options.goods_id
        let activity_id = options.activity_id
        this.setData({
            goods_id: goods_id,
            activity_id:activity_id
        });
    },
    onShow(){

      var that = this;
      // util.login().then(result => { 
      wx.getStorage({
        key: 'session_key',
        success: function success(res) {
          that.assist_bargain_goods_info_fn();
          that.assist_bargain_log_list_fn();
        }, fail: function fail() {
          _util2.default.login();
        }
      });
    },

_util2.default.login(); 这是一个判断有没有登录,没有登录就会请求登录接口的功能,这个登录接口,调用会刷新页面,但是再次触发会导致 onLoad 里的options为undefined 导致我这些goods_id 和 activity_id都出错 接口无法请求

但是我页面其实参数又都在,不知道怎么去做了 不知道我有没有说清楚

阅读 1.8k
2 个回答

1.在 onLoad 函数中,把 goods_id 和 activity_id 保存到本地存储:

onLoad: function onLoad(options) {
    let goods_id = options.goods_id
    let activity_id = options.activity_id
    this.setData({
        goods_id: goods_id,
        activity_id:activity_id
    });
    
    wx.setStorage({
        key: 'goods_id',
        data: goods_id
    });
    wx.setStorage({
        key: 'activity_id',
        data: activity_id
    });
},

2.在 onShow 函数中,从本地存储中获取 goods_id 和 activity_id:

onShow() {
    var that = this;
    wx.getStorage({
        key: 'goods_id',
        success: function (res) {
            that.setData({ goods_id: res.data });
        }
    });
    wx.getStorage({
        key: 'activity_id',
        success: function (res) {
            that.setData({ activity_id: res.data });
        }
    });

    wx.getStorage({
        key: 'session_key',
        success: function success(res) {
            that.assist_bargain_goods_info_fn();
            that.assist_bargain_log_list_fn();
        },
        fail: function fail() {
            _util2.default.login();
        }
    });
}

有点像我早上碰到的情况,但是不知道是不是,试下从开发工具删除掉小程序项目,再打开

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