更新:以下已解决,但我遇到了类似的问题:
在我的图库模板中(对于示例页面,请参见此处,如果通过站点导航到,一切都会正常加载。刷新时,网格父 div(样式组件中的 GalleryGrid)被擦除/取消样式/替换为空白 div。这实际上发生在在盖茨比补水期间刷新。
我尝试用手动设置样式的常规 div 替换样式组件,但没有成功。不知道发生了什么!
我遇到了一个非常奇怪的错误!
我使用 Gatsby 构建了一个网站,从 Prismic.io 采购,并使用 styled-components 来设置样式。我使用 framer-motion 进行页面转换,并将我的布局组件添加到 gatsby-browser,以便仅转换页面内容,并向 gatsby-ssr 添加类似的代码以修复一些初始 ssr 错误。
现在发生的情况是,每当直接访问索引以外的页面时(试试这个),某些组件不会正确呈现。在此示例中,页面顶部的日期被替换为<Body>
组件(其样式与预期<Date>
组件不同),实际内容已被截断,仅显示第一个<p>
.
如果您导航到“投资组合”部分,然后导航回目录页面,页面将正确显示 - 日期现在是一个<Date>
组件并显示整个正文文本。
'essay' 节点也会发生类似的错误 - 例如,在此页面上,图像本应位于一个被调用的组件中,但在刷新或直接访问(而不是通过站点导航导航到该页面)时ImageContainer
被一个额外的组件替换。EssayContainer
老实说,我不知道这里发生了什么或可能导致此错误的原因 - 无论是我做错了什么还是这是 Gatsby 的 SSR 或 styled-components/gatsby SC 插件中的错误。它在运行时按预期工作gatsby develop
,因此必须是构建或 SSR 中的某些内容。
我的盖茨比浏览器:
const transitionDelay = 500
export const wrapPageElement = ({ element, props }) => {
return <Layout {...props}>{element}</Layout>
}
export const shouldUpdateScroll = ({
routerProps: { location },
getSavedScrollPosition,
}) => {
if (location.action === "PUSH") {
window.setTimeout(() => window.scrollTo(0, 0), transitionDelay)
} else {
const savedPosition = getSavedScrollPosition(location)
window.setTimeout(
() => window.scrollTo(...(savedPosition || [0, 0])),
transitionDelay
)
}
return false
}
还有我的 gatsby-ssr:
const transitionDelay = 500
export const wrapPageElement = ({ element, props }) => {
return <Layout {...props}>{element}</Layout>
}
我的回购在这里。
任何帮助是极大的赞赏!