実現したいこと
掲載の件につきまして、実装初期から躓いてしまいました。
解決策について教えて頂きたいです。
また、Next.jsで単純なルーティングぐらいしかしたことがなく、threeのモジュール等(CSRで実装しないとエラーになってしまう?)の扱いにあまり詳しくないので意識するポイントなど教えていただけれと思います。
(CSRやSSRなどの特徴は分かりますが、正直ほぼ制作で意識したことがありませんので、ブラウザのAPIなど使用する際はCSRでないといけないなども本件で「言われてみれば確かにそうだよね」となりました。)
発生している問題・分からないこと
==フォルダ構成==
src直下に
「Componentsフォルダ」/「page.js」→以降ComponentsPageと略します。
「appフォルダ」/page.js→以降appPageと略します
があります。
npm run dev で下記のエラーが出ます。
hook.js:608 TypeError: Cannot read properties of undefined (reading 'ReactCurrentOwner')
Canvasタグをコメントアウトし再度サーバーを立てるとエラーは出なくなります。
Canvasを使用しているコンポーネントでは"use client"を記載していますので問題ないと思ったのですが...何か他にやらないといけないことがあるのでしょうか?
Next.jsの知識が浅く申し訳ありませんが、詳しい方教えてくれますと助かります。
該当のソースコード
ComponentsPage
1"use client"; 2import React from 'react' 3import { Canvas } from '@react-three/fiber' 4// import dynamic from 'next/dynamic'; 5 6 7const Header = () => { 8 return ( 9 <div className="mt-16"> 10 <h1>テスト</h1> 11 <Canvas></Canvas> 12 </div> 13 ) 14} 15 16export default Header
appPage
1import Header from "@/CommonComponents/header"; 2import Link from "next/link"; 3 4export default function Home() { 5 return ( 6 <div> 7 <Header /> 8 <h1>テスト</h1> 9 {/* <Link href="/pagechange">ページ遷移はこちら</Link> */} 10 </div> 11 ); 12}
package.json
1 "dependencies": { 2 "@react-three/drei": "^9.120.4", 3 "@react-three/fiber": "^8.17.10", 4 "next": "15.0.4", 5 "react": "^19.0.0", 6 "react-dom": "^19.0.0", 7 "three": "^0.171.0" 8 }, 9 "devDependencies": { 10 "eslint": "^8", 11 "eslint-config-next": "15.0.4", 12 "postcss": "^8", 13 "tailwindcss": "^3.4.1" 14 }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
解決に至りませんでした。
補足
特になし
