- 当前 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);
}
我也是,使用
navigateBackMiniProgram
方法从半屏小程序传参跳转回来,wx.onAppShow 下一次拿到的参数还是上一次的。复现方式,灭屏,再重新开屏
有使用setData处理了么?若还有问题,麻烦提供一下代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
这是这个小程序页面的代码 在测试环境下一切都是可以显示 包括跳转其他小程序 也是可以的 但是一发布到正式环境下 就不能跳小程序 不能显示数据了 测试和正式的代码是一模一样的 但是在正式环境就是不能实现
<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>
有结果么 请提供解决方案 或者反馈证明一下 这是你们微信系统的bug也行!
域名都配置完成了么?https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html
肯定是配置完成了 我们的项目已经上线了 我们只是添加了卡券的功能 点击卡券的立即使用 跳转我们的小程序页面 测试环境就可以请求接口获取的所有信息 正式环境就请求不出来
还有一个问题 第一次打开小程序的时候 把参数都打印到了页面上 之后退出小程序 打开其他的卡券的时候 显示的信息还是第一张卡券的信息 请问是有缓存么 但是 我在onShow方法里已经写入了字段重置为空字符串了 但是还是不管用