为何出现this.context is null错误?属于TypeScript还是Next.js问题?
问题解答:TypeError: this.context is null 原因分析
这个错误属于Next.js使用错误,和TypeScript无关。
错误原因
你错误地从next/document导入了Head组件,该组件仅适用于自定义_document.tsx文件(用于修改Next.js的根HTML文档结构),它依赖服务器端的特定上下文环境,在普通客户端组件(比如你的Layout)中直接使用时,就会抛出TypeError: this.context is null的运行时错误。
修复方案
将Head的导入路径改为next/head,这是Next.js专为普通页面/组件设计的头部标签管理组件:
修改后的Layout.tsx代码:
import { FC } from 'react' import Head from 'next/head' // 修正导入路径 import { Box } from '@mui/material' interface Props { title?: string; children?: React.ReactNode; } export const Layout:FC<Props> = ({ title = "Open Jira", children }) => { return ( <Box sx={{ flexGrow: 1 }} > <Head> <title>{ title }</title> </Head> <Box sx={{ padding: '10px 20px' }}> {children} </Box> </Box> ) }
内容的提问来源于stack exchange,提问作者tukitooo1998
相关产品推荐
相关产品推荐

