Next.js 14根layout.tsx路由导航重复挂载问题求助
Next.js 14 App Router 根Layout重复挂载导致状态重置问题
我使用Next.js 14搭配默认的App Router导航系统,按要求配置了根layout.tsx。根据官方文档说明,根Layout组件应仅在应用初始化时挂载一次,但实际切换路由时,Redux、React Context、Zustand管理的状态全部重置为默认值。
为排查问题,我在layout.tsx中添加了console.log,结果发现每次路由导航时该组件都会重新挂载。我期望路由切换时状态能保持,但尝试多种状态管理工具均无效,查阅文档明确说明根layout.tsx不应在路由切换时重挂载,现寻求可行解决方案。
根layout.tsx代码:
import type { Metadata } from "next"; import "./globals.css"; import Header from "./components/Header/Header"; import Footer from "./components/Footer/Footer"; export const metadata: Metadata = { title: "title", description: "description", }; export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { console.log("mounting layout") return ( <html lang="en"> <body> <Header /> {children} <Footer /> </body> </html> ); }
内容的提问来源于stack exchange,提问作者Alfonso Anaya
相关产品推荐
相关产品推荐

