我正在尝试为我的next.js应用添加一个auth上下文。下面是我在layout.tsx
文件中使用的代码:
"use client";
import './globals.css'
import type { Metadata } from 'next'
import { AuthProvider } from '@/context/AuthContext';
export const metadata: Metadata = {
title: 'Test app',
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>
<AuthProvider>
{children}
</AuthProvider>
</body>
</html>
)
}
字符串
当我用turbopack在开发服务器上运行这段代码时,它完全按照我在电脑上的预期工作,但在我正在测试的两个移动的设备上完全失败。它具体给出以下错误:
x1c 0d1x的数据
的
有趣的是,一旦我从layout.tsx文件中删除了"use client"
指令,网站就可以正常工作了(尽管我还需要删除AuthContext)。我可以在任何其他页面上使用该指令。
有人能给予一下为什么会发生这种情况吗?非常感谢!
1条答案
按热度按时间vaj7vani1#
我只是在多探索了一点之后才解决了这个问题。根据this answer,您似乎不能在根布局中使用该指令。我选择为我的上下文创建一个新组件,并在其中简单地使用
"use client"
。