ページへのHTMLリンクなし
内部Next.jsページへのナビゲーションに
<a>
要素の使用を防止します。
このエラーが発生した理由
next/link
コンポーネントを使用せずにページルートに移動するために<a>
要素が使用され、不要なフルページの更新が発生しました。
ページ間のクライアントサイドのルート遷移を有効にし、シングルページアプリケーションエクスペリエンスを提供するには、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
ディレクトリを自動的に検出できます。
モノレポで作業している場合は、pagesDir
がpages
ディレクトリを見つけるために使用するeslint-plugin-next
のrootDir
設定を構成することをお勧めします。
場合によっては、pages
ディレクトリを指定してこのルールを直接構成する必要がある場合もあります。これはパスまたはパスの配列にすることができます。
eslint.config.json
{
"rules": {
"@next/next/no-html-link-for-pages": ["error", "packages/my-app/pages/"]
}
}
参考リンク
役に立ちましたか?