Error occurred prerendering page "/_not-found".(Next.js 15)
<p>我们需要更新 <button type="button">UserProfile.tsx </button>组件,改用 <button type="button">Next.js </button>的 Link 组件而不是 react-router-dom 的 Link 组件。以下是解决方法:</p><p>这样可以确保组件更好地适应 <button type="button">Next.js </button>的框架,避免不兼容的问题。<br><br></p>
<p># 错误的代码</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">'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</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">HTMLDivElement</span><span style="color: rgba(255, 0, 0, 1)">, ProfileProps</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">(
({ userName = '', designation = '', userimg = '', isCollapse = false }, ref) => {
const theme = useTheme()
return (
</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
{isCollapse ? (
''
) : (
</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box
</span><span style="color: rgba(255, 0, 0, 1)">display</span><span style="color: rgba(0, 0, 255, 1)">={'flex'}
</span><span style="color: rgba(255, 0, 0, 1)">alignItems</span><span style="color: rgba(0, 0, 255, 1)">='center'
</span><span style="color: rgba(255, 0, 0, 1)">gap</span><span style="color: rgba(0, 0, 255, 1)">={2}
</span><span style="color: rgba(255, 0, 0, 1)">sx</span><span style="color: rgba(0, 0, 255, 1)">={{ </span><span style="color: rgba(255, 0, 0, 1)">m: 3, p: 2, borderRadius: '8px', bgcolor: theme.palette.secondary.main + 20 }}
</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Avatar </span><span style="color: rgba(255, 0, 0, 1)">alt</span><span style="color: rgba(0, 0, 255, 1)">='Remy </span><span style="color: rgba(255, 0, 0, 1)">Sharp' src</span><span style="color: rgba(0, 0, 255, 1)">={userimg} </span><span style="color: rgba(0, 0, 255, 1)">/></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Typography </span><span style="color: rgba(255, 0, 0, 1)">variant</span><span style="color: rgba(0, 0, 255, 1)">='h6'</span><span style="color: rgba(0, 0, 255, 1)">></span>{userName}<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Typography</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Typography </span><span style="color: rgba(255, 0, 0, 1)">variant</span><span style="color: rgba(0, 0, 255, 1)">='caption' </span><span style="color: rgba(255, 0, 0, 1)">color</span><span style="color: rgba(0, 0, 255, 1)">='textSecondary'</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
{designation}
</span><span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Typography</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box </span><span style="color: rgba(255, 0, 0, 1)">sx</span><span style="color: rgba(0, 0, 255, 1)">={{ </span><span style="color: rgba(255, 0, 0, 1)">ml: 'auto' }}</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Tooltip </span><span style="color: rgba(255, 0, 0, 1)">title</span><span style="color: rgba(0, 0, 255, 1)">='Logout' </span><span style="color: rgba(255, 0, 0, 1)">placement</span><span style="color: rgba(0, 0, 255, 1)">='top'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Link </span><span style="color: rgba(255, 0, 0, 1)">to</span><span style="color: rgba(0, 0, 255, 1)">='/'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">IconButton </span><span style="color: rgba(255, 0, 0, 1)">color</span><span style="color: rgba(0, 0, 255, 1)">='primary' </span><span style="color: rgba(255, 0, 0, 1)">aria-label</span><span style="color: rgba(0, 0, 255, 1)">='logout' </span><span style="color: rgba(255, 0, 0, 1)">size</span><span style="color: rgba(0, 0, 255, 1)">='small'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">AlbumOutlinedIcon </span><span style="color: rgba(0, 0, 255, 1)">/></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">IconButton</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Link</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Tooltip</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
)}
</span><span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
)
}
)
Profile.displayName = 'Profile'</span></pre>
</div>
<p> </p>
<p><br># 正确的代码</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">'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</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">HTMLDivElement</span><span style="color: rgba(255, 0, 0, 1)">, ProfileProps</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">(
({ userName = '', designation = '', userimg = '', isCollapse = false }, ref) => {
const theme = useTheme()
return (
</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
{isCollapse ? (
''
) : (
</span><span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box
</span><span style="color: rgba(255, 0, 0, 1)">display</span><span style="color: rgba(0, 0, 255, 1)">={'flex'}
</span><span style="color: rgba(255, 0, 0, 1)">alignItems</span><span style="color: rgba(0, 0, 255, 1)">='center'
</span><span style="color: rgba(255, 0, 0, 1)">gap</span><span style="color: rgba(0, 0, 255, 1)">={2}
</span><span style="color: rgba(255, 0, 0, 1)">sx</span><span style="color: rgba(0, 0, 255, 1)">={{ </span><span style="color: rgba(255, 0, 0, 1)">m: 3, p: 2, borderRadius: '8px', bgcolor: theme.palette.secondary.main + 20 }}
</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Avatar </span><span style="color: rgba(255, 0, 0, 1)">alt</span><span style="color: rgba(0, 0, 255, 1)">='Remy </span><span style="color: rgba(255, 0, 0, 1)">Sharp' src</span><span style="color: rgba(0, 0, 255, 1)">={userimg} </span><span style="color: rgba(0, 0, 255, 1)">/></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Typography </span><span style="color: rgba(255, 0, 0, 1)">variant</span><span style="color: rgba(0, 0, 255, 1)">='h6'</span><span style="color: rgba(0, 0, 255, 1)">></span>{userName}<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Typography</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Typography </span><span style="color: rgba(255, 0, 0, 1)">variant</span><span style="color: rgba(0, 0, 255, 1)">='caption' </span><span style="color: rgba(255, 0, 0, 1)">color</span><span style="color: rgba(0, 0, 255, 1)">='textSecondary'</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
{designation}
</span><span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Typography</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Box </span><span style="color: rgba(255, 0, 0, 1)">sx</span><span style="color: rgba(0, 0, 255, 1)">={{ </span><span style="color: rgba(255, 0, 0, 1)">ml: 'auto' }}</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Tooltip </span><span style="color: rgba(255, 0, 0, 1)">title</span><span style="color: rgba(0, 0, 255, 1)">='Logout' </span><span style="color: rgba(255, 0, 0, 1)">placement</span><span style="color: rgba(0, 0, 255, 1)">='top'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">Link </span><span style="color: rgba(255, 0, 0, 1)">href</span><span style="color: rgba(0, 0, 255, 1)">='/'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">IconButton </span><span style="color: rgba(255, 0, 0, 1)">color</span><span style="color: rgba(0, 0, 255, 1)">='primary' </span><span style="color: rgba(255, 0, 0, 1)">aria-label</span><span style="color: rgba(0, 0, 255, 1)">='logout' </span><span style="color: rgba(255, 0, 0, 1)">size</span><span style="color: rgba(0, 0, 255, 1)">='small'</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"><</span><span style="color: rgba(128, 0, 0, 1)">AlbumOutlinedIcon </span><span style="color: rgba(0, 0, 255, 1)">/></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">IconButton</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Link</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Tooltip</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span>
<span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
)}
</span><span style="color: rgba(0, 0, 255, 1)"></</span><span style="color: rgba(128, 0, 0, 1)">Box</span><span style="color: rgba(0, 0, 255, 1)">></span><span style="color: rgba(0, 0, 0, 1)">
)
}
)
Profile.displayName = 'Profile'</span></pre>
</div>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<br /><p><table><tr><td><img style="border-top-width: 0pt; border-left-width: 0pt; border-bottom-width: 0pt; border-right-width: 0pt" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc/2.5/cn/88x31.png" /> </td><td>本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。 </td></p><br><br>
来源:https://www.cnblogs.com/sekihin/p/18653162
頁:
[1]