我目前正在开发一个Next.js应用程序(版本13.4.1),并遇到了新的应用程序路由功能的问题。在我的本地开发环境中,一切都按预期工作,但一旦部署到Netlify,我就会遇到不同的行为。
我的应用程序具有以下结构:
app
|-- (dashboard)
|-- agenda/page.tsx
|-- seating/page.tsx
|--layout.tsx
我在 Jmeter 板布局文件(dashboard/layout.tsx)中有一个简单的导航栏:
'use client'
import Image from 'next/image'
import Link from 'next/link'
export default function DashboardLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<>
<header className={styles.dashboardHeader}>...</header>
<ComponentThatHasUseEffect />
<nav className={styles.dashboardNav}>
<Link href="/seating">Seating</Link>
<Link href="/agenda">Agenda</Link>
</nav>
{children}
</>
)
}
议程/页面和座位/页面看起来像这样:
'use client'
export default function Agenda() {
// this custom hooks uses useSWR to fetch logged in users
const { user, isLoading, error } = useUser()
if (isLoading) {
return (
<main className={styles.agenda}>
<Placeholder height={800} />
</main>
)
}
return (
<main className={styles.agenda}>
...normal stuffs
</main>
)
}
当在本地单击导航栏链接时,子组件会重新呈现,而不会像预期的那样刷新页面。但是,当在Netlify中运行相同的代码时,单击导航栏链接会触发整个页面刷新,就像它们是典型的标记一样。
我没有为Netlify做任何特殊的配置或设置,只是按原样推送我的代码。我正在寻找一个解决方案,在部署后保持预期的行为。任何指导或建议将不胜感激。谢谢你!
2条答案
按热度按时间t5zmwmid1#
你好,如果你还没有找到答案,这是一个ongoing issue。
我在Netlify上部署的一个项目也遇到了这个问题。
ijxebb2r2#
你可以使用“next”:“13.3.1”,这将工作正常