Vuejs2 为什么VueJs router savedPosition for scrollBehavior会返回第一个未定义的位置和下一个{x:0,y:0}

Vuejs2 为什么VueJs router savedPosition for scrollBehavior会返回第一个未定义的位置和下一个{x:0,y:0},vuejs2,vue-router,Vuejs2,Vue Router,我使用的是vue router 2.5.3,有两个页面:第一个页面是长列表(通过ajax加载),第二个页面是详细信息 当我在列表页上向下滚动,然后单击浏览器按钮进行下一步导航时,浏览器总是滚动到顶部。savedPosition的值是第一次未定义的,下一次尝试对象{x:0,y:0} <div class="main-content"> <router-view ></router-view> </div> scrollBehavior(to,

我使用的是vue router 2.5.3,有两个页面:第一个页面是长列表(通过ajax加载),第二个页面是详细信息

当我在列表页上向下滚动,然后单击浏览器按钮进行下一步导航时,浏览器总是滚动到顶部。
savedPosition
的值是第一次
未定义的
,下一次尝试
对象{x:0,y:0}

<div class="main-content">
  <router-view ></router-view>
</div>

scrollBehavior(to, from, savedPosition) {
    console.info(savedPosition) // first attemp undefined and next  always {x: 0, y: 0} regardless previous position

    if (savedPosition) {
      return savedPosition
    } else if (to.name == from.name) 
    {
      return
    }
    else {
      return { x: 0, y: 0 }
    }
  },
  mode: 'history',

滚动行为(到、从、保存位置){
console.info(savedPosition)//第一次尝试未定义,下一次总是{x:0,y:0},而不管前一个位置
如果(保存位置){
返回保存的位置
}else if(to.name==from.name)
{
返回
}
否则{
返回{x:0,y:0}
}
},
模式:“历史”,

什么是savedPosition以及它是如何触发的?

这样您就没有页面转换了。您是否使用overflow-y:scroll设置了绝对/固定位置?如果是的话,这就是为什么它得到0-0。@Luna我使用html/css模板基于-我没有看到position:absolute/fixed或overflow-y:scroll的用法这很奇怪。你能做一个JSFIDLE或者共享一个github repo吗?你有没有想过这个问题?所以你没有页面转换。您是否使用overflow-y:scroll设置了绝对/固定位置?如果是的话,这就是为什么它得到0-0。@Luna我使用html/css模板基于-我没有看到position:absolute/fixed或overflow-y:scroll的用法这很奇怪。你能做一个JSFIDLE或者分享一个github回购吗?你有没有想过这个问题?