1

我已经为滚动位置创建了一个文件 app/router.scrollBehavior.js,但是当我按下浏览器后退按钮时,savedPosition 不会调用,因为 fetch api 尚未完成。任何人都可以帮助我。如何知道我的 savePosition 触发后 api 何时完成,否则每次滚动都位于底部位置。有什么方法可以获取存储,在相同的函数中提交获取钩子。 export default function (to, from, savedPosition) { if (savedPosition) { return savedPosition } else { return { x: 0, y: 0 } } }

4

1 回答 1

0

您可以使用async滚动,它解析为所需的位置描述符。可以将其与来自页面级转换组件的事件挂钩,以使滚动行为与您的页面转换很好地配合。

scrollBehavior (to, from, savedPosition) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve({ x: 0, y: 0 })
    }, 500)
  })
}
于 2020-09-09T14:53:22.963 回答