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'
复制代码

 

点击右上角即可分享
微信分享提示