【发布时间】:2021-03-25 06:09:43
【问题描述】:
我有一个应用程序,其中包含我手动定义的一些路线 ID(基本上是长 SPA 中的一堆部分)。我在gatsby-browser.js 中获取这些并将它们与shouldUpdateScroll 结合使用,检查路线ID 是否存在,在这种情况下,滚动到路线/部分的位置。
例子:
export const shouldUpdateScroll = ({ routerProps: { location } }) => {
const container = document.querySelector('.site')
const { pathname } = location
const projectRoutes = [`project1`, `project2`]
if (projectRoutes.indexOf(pathname) !== -1) {
const target = document.getElementById(pathname)
container.scrollTop = target.offsetTop;
}
return false
}
这很适合我的用例。
现在我想为动态创建内容(从 Sanity 获取)的页面添加类似的内容。据我了解,我无法在 gatsby-browser.js 中使用 GraphQL,那么将 ID 从 Sanity 获取到 gatsby-browser.js 以便我可以使用它们来识别它们的滚动位置的最佳方法是什么?
如果有其他更好的方法可以达到同样的效果,我当然愿意。
【问题讨论】:
标签: javascript node.js reactjs graphql gatsby