解决uni-app uni.navigateBack 返回上一页刷新
网上看了很多解决思路,但都是针对父组件,返回上一页刷新子组件的案例很少,头疼了我一天,终于解决了,有两种思路,废话不多说,直接上代码第一种(通过父组件的onShow来判断)//我就不写结构了,相信都看得懂<Share :courseId='currentId' v-if="isResetMemberInfo"></Share>data() {return {isResetM
·
网上看了很多解决思路,但都是针对父组件,返回上一页刷新子组件的案例很少,头疼了我一天,终于解决了,有两种思路,废话不多说,直接上代码
第一种(通过父组件的onShow来判断)
//我就不写结构了,相信都看得懂
<Share :courseId='currentId' v-if="isResetMemberInfo"></Share>
data() {
return {
isResetMemberInfo:true,
}
},
onShow() {
//v-if是可以实现刷新的,所以通过v-if来判断
this.isResetMemberInfo = false;
this.$nextTick(() => {
this.isResetMemberInfo = true;
})
}
##第二种(通过vuex的state获取的数据来判断)
//页面1
<script>
import {mapMutations} from 'vuex'
export default {
methods: {
...mapMutations(["setRoute"]),
//点击跳转的事件里给vuex加字符串
release(){
uni.navigateTo({
url: '/pages/manage/ReleaseShare/index'//+'Shares1'
});
let getroute = 'Shares1'
this.setRoute(getroute)
},
},
}
</script>
//页面2(我自己封装的导航组件)
<script>
import {mapState,mapMutations} from 'vuex'
export default {
computed:{
...mapState({
GetRoute: state => state.manage.GetRoute
})
},
created(){},
methods:{
...mapMutations(["setRoute"]),
goBack(){
//如果state内的GetRoute字段等于页面1传过来的,就走第一条
if(this.GetRoute == "Shares1"){
uni.navigateTo({
url: '/pages/manage/Community/index?CourseIndex='+1
});
this.setRoute('')
}else{
//否则走这个返回上一页不刷新的
uni.navigateBack({
delta: 1,
success: ()=>{
//var pages = getCurrentPages();
// var currPage = pages[pages.length - 1]; //当前页面
// var prevPage = pages[pages.length - 2]; //上一个页面
// prevPage.$vm; // 执行前一个页面的刷新
// console.log(prevPage.$vm)
}
});
}
},
}
}
</script>
**总结:**两个方法有好有坏,根据自己的代码和逻辑看选择用哪个
更多推荐
已为社区贡献2条内容
所有评论(0)