1.页面跳转后返回之前页面数据重置全部刷新了
这个问题很头疼,从a页面去b页面办了点事,回到a页面时之前的数据没了,页面重置了怎么办
把路由页面跳转时用的
uni.navigateTo({})
改用
uni.navigateBack()
/* 跳转详情页 */
todetail(e) {
var pages = getCurrentPages();// 获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
var prevPage = pages[pages.length - 2]; //上一个页面
//prevPage.route获取上一页面的页面路径
//条件编译
console.log(1)
//#ifdef H5
prevPage._data.aa= e.aa//h5中的修改方法
prevPage._data.bb= e.bb//h5中的修改方法
//#endif
// #ifndef H5
prevPage.$vm._data.aa= e.aa//小程序中的修改方法
prevPage.$vm._data.bb= e.bb//小程序中的修改方法
//#endif
uni.navigateBack()//返回上一页面
}
这个完美解决了页面自动刷新的问题,是自带的返回方法;
2.页面不刷新的问题了
这个简单,当你的数据发生变化后,页面视图如果没有随着改变只需要加上this.$forceUpdate()强制刷新页面
//请求接口返回后,强制刷新界面
const result = await this.$request.baseRequest(opts, param);
if (result.status == "000") {
uni.hideLoading()
this.dynamic = this.dynamic.concat(info)
this.$forceUpdate()
} else {
uni.hideLoading()
uni.showModal({
content: result.msg,
showCancel: false
});
}
},