Error occurred prerendering page "/_not-found".(Next.js 15)
我们需要更新 组件,改用 的 Link 组件而不是 react-router-dom 的 Link 组件。以下是解决方法:
这样可以确保组件更好地适应 的框架,避免不兼容的问题。
# 错误的代码
'use client' import React from 'react' import { Box, Avatar, Typography, IconButton, Tooltip, useTheme } from '@mui/material' import AlbumOutlinedIcon from '@mui/icons-material/AlbumOutlined' import { Link } from 'react-router-dom' interface ProfileProps { userName?: string designation?: string userimg?: string isCollapse?: boolean } export const Profile = React.forwardRef<HTMLDivElement, ProfileProps>( ({ userName = '', designation = '', userimg = '', isCollapse = false }, ref) => { const theme = useTheme() return ( <Box> {isCollapse ? ( '' ) : ( <Box display={'flex'} alignItems='center' gap={2} sx={{ m: 3, p: 2, borderRadius: '8px', bgcolor: theme.palette.secondary.main + 20 }} > <Avatar alt='Remy Sharp' src={userimg} /> <Box> <Typography variant='h6'>{userName}</Typography> <Typography variant='caption' color='textSecondary'> {designation} </Typography> </Box> <Box sx={{ ml: 'auto' }}> <Tooltip title='Logout' placement='top'> <Link to='/'> <IconButton color='primary' aria-label='logout' size='small'> <AlbumOutlinedIcon /> </IconButton> </Link> </Tooltip> </Box> </Box> )} </Box> ) } ) Profile.displayName = 'Profile'
# 正确的代码
'use client' import React from 'react' import { Box, Avatar, Typography, IconButton, Tooltip, useTheme } from '@mui/material' import AlbumOutlinedIcon from '@mui/icons-material/AlbumOutlined' import Link from 'next/link' interface ProfileProps { userName?: string designation?: string userimg?: string isCollapse?: boolean } export const Profile = React.forwardRef<HTMLDivElement, ProfileProps>( ({ userName = '', designation = '', userimg = '', isCollapse = false }, ref) => { const theme = useTheme() return ( <Box> {isCollapse ? ( '' ) : ( <Box display={'flex'} alignItems='center' gap={2} sx={{ m: 3, p: 2, borderRadius: '8px', bgcolor: theme.palette.secondary.main + 20 }} > <Avatar alt='Remy Sharp' src={userimg} /> <Box> <Typography variant='h6'>{userName}</Typography> <Typography variant='caption' color='textSecondary'> {designation} </Typography> </Box> <Box sx={{ ml: 'auto' }}> <Tooltip title='Logout' placement='top'> <Link href='/'> <IconButton color='primary' aria-label='logout' size='small'> <AlbumOutlinedIcon /> </IconButton> </Link> </Tooltip> </Box> </Box> )} </Box> ) } ) Profile.displayName = 'Profile'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通