收藏
回答

onShow方法为什么每次进入页面时记录的还是上一次进入时留下的信息

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug Android 小米 7.0.4

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


onShow方法为什么每次进入页面时记录的还是上一次进入时留下的信息,明明代码里已经清空了所有的参数

图片中信息是上一次访问时的数据

重新打开页面的时候数据就会自动填充

这是小程序的bug还是

请官方专业人士给我一个反馈,谢谢

onShow: function(options) {

     this.card_id = "";

     this.encrypt_code = "";

     this.openid = "";

     this.all = "";

     this.error = "";

     this.cbdata = "";

    

     var obj = wx.getLaunchOptionsSync();

     this.all = JSON.stringify(obj);

     let card_id = obj.query.card_id;

     let encrypt_code = obj.query.encrypt_code;

     let openid = obj.query.openid;

     // let card_id = "pT6S31MfOWrgUiQvYi60hJ3e_hN8";

     // let encrypt_code = "074081801943";

     // let openid = "oT6S31H9pKuyOMgsCtVFNrhXQ-Y4";

     this.goPage(card_id,encrypt_code,openid);

     }


回答关注问题邀请回答
收藏

2 个回答

  • Juskue
    Juskue
    03-12

    我也是,使用

    navigateBackMiniProgram

    方法从半屏小程序传参跳转回来,wx.onAppShow 下一次拿到的参数还是上一次的。复现方式,灭屏,再重新开屏

    

    03-12
    有用
    回复
  • 灵芝
    灵芝
    2019-05-30

    有使用setData处理了么?若还有问题,麻烦提供一下代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-05-30
    有用
    回复 9
    • -
      -
      2019-05-30

      这是这个小程序页面的代码  在测试环境下一切都是可以显示 包括跳转其他小程序 也是可以的  但是一发布到正式环境下 就不能跳小程序  不能显示数据了  测试和正式的代码是一模一样的  但是在正式环境就是不能实现

      <template>

      <div class="bg-white">

      <p>card_id:{{ card_id }}</p>

      <p>encrypt_code:{{ encrypt_code }}</p>

      <p>openid:{{ openid }}</p>

      <p>all:{{ all }}</p>

      <p>错误信息:{{ error }}</p>

      <p>数据信息:{{ cbdata }}</p>

      <div class="plate" v-show="infoShow">

      <div class="plate-left">

      <div class="good-img">

      <img :src="goodImg" />

      </div>

      </div>

      <div class="plate-right" style="float: left;margin-left: 28px;">

      <p class="good-title">{{ goodName }}</p>

      <div class="good-score-num">

      <span class="good-num">x{{ EXCHANGE_NUM }}</span>

      </div>

      </div>

      </div>

      <div class="plate" v-show="infoShow">

      <div class="plate-left">

      有效期限

      </div>

      <div class="plate-right">

      <span>{{ validity }}</span>

      </div>

      </div>

      <div class="plate" v-show="infoShow">

      <div class="plate-left">

      描述

      </div>

      <div class="plate-right">

      <span>{{ description }}</span>

      </div>

      </div>

      </div>

      </template>

      <script>

      export default {

      data: function() {

      return {

      card_id:'',

      encrypt_code:'',

      openid:'',

      all:'',

      error:'',

      cbdata:'',

      infoShow:true,

      goodName: '',

      goodImg: '',

      EXCHANGE_NUM: '1', //兑换数量

      validity: '', //兑换时间

      description:'',

      }

      },

      methods: {

      goPage(card_id,encrypt_code,openid) {

      this.card_id = card_id;

      this.encrypt_code = encrypt_code;

      this.openid = openid;

      let _this = this;

      _this.$post('card/getAutoLogin', {

      card_id:card_id,

      encrypt_code:encrypt_code,

      openid:openid

      }).then(

      (data) => {

      _this.cbdata = JSON.stringify(data);

      if(!data.success){

      _this.error = data.message;

      _this.infoShow = false;

      }else{

      if(data.bean.record.course_type_code == "KCSTUDY"){

      let id = data.bean.record.goods_id;

      wx.navigateToMiniProgram({

      appId: 'wx860b68f5d449ed03',

      path: 'pages/courseDetail/courseDetail?id=' + id + '&clientDm=UT65B',

      envVersion: 'release', //开发版:develop   体验版:trial   正式版:release

      success(res) {

      // 打开成功

      console.info("open success");

      }

      });

      }else{

      _this.infoShow = true;

      let info = data.bean;

      _this.goodName = info.otherInfo.title;

      _this.goodImg = info.otherInfo.banner_image;

      _this.description = info.record.description;

      _this.score = info.record.score;

      _this.validity = info.record.validity;

      }

      if(data.bean.userCardStatus == "NORMAL"){

      // 核销卡券

      _this.$post('/card/decode', {

      card_id:_this.card_id,

      encrypt_code:_this.encrypt_code,

      openid:_this.openid

      }).then(

      (data) => {

      }, err => {

      }

      )

      }

      }

      }, err => {

      _this.error = JSON.stringify(data);

      }

      )

      },

      },

      onShow: function(options) {

      this.card_id = "";

      this.encrypt_code = "";

      this.openid = "";

      this.all = "";

      this.error = "";

      this.cbdata = "";

      var obj = wx.getLaunchOptionsSync();

      this.all = JSON.stringify(obj);

      let card_id = obj.query.card_id;

      let encrypt_code = obj.query.encrypt_code;

      let openid = obj.query.openid;

      // let card_id = "pT6S31MfOWrgUiQvYi60hJ3e_hN8";

      // let encrypt_code = "074081801943";

      // let openid = "oT6S31H9pKuyOMgsCtVFNrhXQ-Y4";

      this.goPage(card_id,encrypt_code,openid);

      }

      }

      </script>


      2019-05-30
      回复
    • -
      -
      2019-05-30

      有结果么 请提供解决方案  或者反馈证明一下 这是你们微信系统的bug也行!

      2019-05-30
      回复
    • 灵芝
      灵芝
      2019-05-30回复-

      域名都配置完成了么?https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

      2019-05-30
      回复
    • -
      -
      2019-05-30回复灵芝

      肯定是配置完成了 我们的项目已经上线了 我们只是添加了卡券的功能  点击卡券的立即使用 跳转我们的小程序页面  测试环境就可以请求接口获取的所有信息  正式环境就请求不出来

      2019-05-30
      回复
    • -
      -
      2019-05-30回复灵芝

      还有一个问题  第一次打开小程序的时候  把参数都打印到了页面上  之后退出小程序 打开其他的卡券的时候  显示的信息还是第一张卡券的信息  请问是有缓存么  但是 我在onShow方法里已经写入了字段重置为空字符串了 但是还是不管用

      2019-05-30
      回复
    查看更多(4)
登录 后发表内容