惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
爱范儿
爱范儿
小众软件
小众软件
K
Kaspersky official blog
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
V
Vulnerabilities – Threatpost
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
C
Check Point Blog
S
Schneier on Security
P
Palo Alto Networks Blog
IT之家
IT之家
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
Project Zero
Project Zero
Y
Y Combinator Blog
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
S
Securelist
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理

博客园 - sekihin

【SQLSERVER】备份还原除当前数据库~之外的其他数据库的bak备份 【前端】常用VsCode插件 React席哪个能优化 20 GitHub 仓库帮助你成为 React专家 Export a named export for each HTTP method instead.(Next.js 15) Error: Attempted to call generateViewport() from the server (Next.js 15) [cause]: TypeError: e_.createContext is not a function (Next.js 15) Cursor - AI代码编辑器的使用指南 Next.js项目中.prettierrc.json的配置 Next.js项目中.eslintrc.js的配置 nvm: Node Version Manager PHP slim 部署Apache NestJS 部署Apache - sekihin NestJS导出API文档 ChatGPT plugins Obisidian plugins Build nest.js by tsconfig.json Data Transfer Objects (DTOs) in NestJS TypeError: stringWidth is not a function
Error occurred prerendering page "/_not-found".(Next.js 15)
sekihin · 2025-01-05 · via 博客园 - sekihin

我们需要更新 组件,改用 的 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'