请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答

4回答

WTF3310961 2019-08-29 18:43:04

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

1 回复 有任何疑惑可以回复我~
淡水狗 2019-09-29 16:55:11

我也是这样 请问解决了嘛

1 回复 有任何疑惑可以回复我~
  • AKhui #1
    使用在iselect.vue里面使用this.$router.push({path:'/'}),代码如下:
    handleSelect:function(item){
                this.$store.commit('geo/setPosition',{city:item.value})
                this.$router.push({path:'/'})
            }
    回复 有任何疑惑可以回复我~ 2019-10-09 10:57:55
  • 淡水狗 回复 AKhui #2
    谢谢你
    回复 有任何疑惑可以回复我~ 2019-10-09 10:58:42
  • AKhui 回复 淡水狗 #3
    不客气,互相学习
    回复 有任何疑惑可以回复我~ 2019-10-09 10:59:46
fengyunzhu 2019-10-16 10:01:06

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

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

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

0 回复 有任何疑惑可以回复我~
阿J脚步 2019-09-29 13:49:38

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

0 回复 有任何疑惑可以回复我~
  • AKhui #1
    使用在iselect.vue里面使用this.$router.push({path:'/'}),代码如下:
    handleSelect:function(item){
                this.$store.commit('geo/setPosition',{city:item.value})
                this.$router.push({path:'/'})
            }
    回复 有任何疑惑可以回复我~ 2019-10-09 10:58:06
  • 谢谢你啊
    回复 有任何疑惑可以回复我~ 2019-10-09 18:23:30
  • AKhui 回复 阿J脚步 #3
    不客气,互相学习
    回复 有任何疑惑可以回复我~ 2019-10-12 10:15:34
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信