城市切换章节,页面刷新vuex状态清空的问题

来源:10-1 切换城市(1)

慕村4017078

2019-08-29

老师您好,我这个问题其他同学都有遇到,但是都没有好的解决方法,具体情况是这样的:我们在handleSelect函数中用commit修改了state中position的状态,再用location.href的方式跳回首页。那么问题来了,跳转之后会重新刷新页面,页面一刷新vuex的状态随之清空,然后执行nuxtServerInit方法,这样就导致不管你如何切换城市,页面一刷新还是显示天津市,也就是你定位的城市。我本来想在handleselect的时候做个sessionStorage的存储,然后在页面渲染完成后再读取sessionStorage,但是效果并不好,都要闪一下,又想在vuex的mutations里面直接获取sessionStorage,然后人家根本就没有这个方法,sessionStorage undefined!万般无奈之下来这里求助老师,望解答!

写回答

4回答

WTF3310961

2019-08-29

我用cookie实现了,在接口那里获取cookie判断cookie是否为空

1
1
快乐动起来呀
赞独立解决问题的能力
2019-09-01
共1条回复

淡水狗

2019-09-29

我也是这样 请问解决了嘛

1
4
AKhui
回复
淡水狗
与城市相关的数据记得一起改变哈,目前看到的比如有说首页的热门搜索,所以代码如下: handleSelect:async function(item){ this.$store.commit('geo/setPosition',{city:item.value}) this.$router.push({path:'/'}) const {status:status,data:{result}}= await this.$axios.get('/search/hotPlace',{ params:{ city:this.$store.state.geo.position.city.replace('市','') } }) this.$store.commit('home/setHotPlace',status===200?result:[]) }
2019-10-09
共4条回复

fengyunzhu

2019-10-16

老师以为只是一个跳转,其实这块难度挺大的,需要考虑两点

  1. 要把新的城市写入到store里,难度1.5颗星

  2. 使用window.location.href=""跳转或者刷新页面,store又重新获取定位,把你的城市替换成默认的了,难度3-5颗星

0
0

阿J脚步

2019-09-29

可以分享下代码嘛 万分感谢

0
3
AKhui
回复
阿J脚步
不客气,互相学习
2019-10-12
共3条回复

Vue全家桶+SSR+Koa2全栈开发美团网

整合大前端8项技术,全面晋级全栈工程师,毕设/面试作品

2445 学习 · 1638 问题

查看课程