页面没有 HTML 链接
禁止使用
<a>元素导航到内部 Next.js 页面。
此错误发生的原因
使用了 <a> 元素导航到页面路由,而不是使用 next/link 组件,导致不必要的整页刷新。
Link 组件是实现页面之间客户端路由转换并提供单页应用体验所必需的。
可能的解决方法
请务必导入 Link 组件,并将其包装指向不同页面路由的锚点元素。
之前
pages/index.js
function Home() {
return (
<div>
<a href="/about">About Us</a>
</div>
)
}之后
pages/index.js
import Link from 'next/link'
function Home() {
return (
<div>
<Link href="/about">About Us</Link>
</div>
)
}
export default Home选项
pagesDir
此规则通常可以自动找到您的 pages 目录。
如果您正在单体仓库中工作,我们建议在 eslint-plugin-next 中配置 rootDir 设置,pagesDir 将使用此设置来定位您的 pages 目录。
在某些情况下,您可能还需要通过提供 pages 目录来直接配置此规则。这可以是一个路径或一个路径数组。
eslint.config.json
{
"rules": {
"@next/next/no-html-link-for-pages": ["error", "packages/my-app/pages/"]
}
}有用链接
这有帮助吗?