🌟

クライアントのみで動くパッケージを実行した時のエラーとその対応

2024/01/12に公開

Error Message

window is not defined

サーバーサイドで処理できないエラーです。

原因

Editorコンポーネントはサーバーで処理されません。

import { Editor, EditorProps } from "react-draft-wysiwyg";
...
 return (
    <Editor>
 )
...

対策

dynamic関数を使用します。

js
+ import dynamic from "next/dynamic";
- import { Editor, EditorProps } from "react-draft-wysiwyg";
+ import { EditorProps } from "react-draft-wysiwyg";

+ const Editor = dynamic(
+   () => import("react-draft-wysiwyg").then((mod) => mod.Editor),
+   { ssr: false },
+ );
...
 return (
    <Editor>
 )
...

クライアント側でのみコンポーネントが読み込まれます。

Discussion