我正在开发一个富文本编辑器,用于将普通 HTML 转换为编辑器内容并进行服务器端渲染(SSR)的 Next.js 项目。但是我遇到了“window is not defined”错误,因此我在该 GitHub 链接 上寻找解决方案。
该项目使用了 Next.js 的动态导入功能。
与其直接导入 Editor:import { Editor } from "react-draft-wysiwyg";
它使用以下代码来动态导入编辑器:
const Editor = dynamic(
() => {
return import("react-draft-wysiwyg").then(mod => mod.Editor);
},
{ ssr: false }
);
但是尽管我已经安装了 react-draft-wysiwyg 模块,我仍然遇到这个错误。
ModuleParseError: Module parse failed: Unexpected token (19:9)
You may need an appropriate loader to handle this file type.
| import dynamic from "next/dynamic";
| var Editor = dynamic(function () {
> return import("react-draft-wysiwyg").then(function (mod) {
| return mod.Editor;
| });
这是我的全部代码
import React, { Component } from "react";
import { EditorState } from "draft-js";
// import { Editor } from "react-draft-wysiwyg";
import dynamic from "next/dynamic";
const Editor = dynamic(
() => {
return import("react-draft-wysiwyg").then(mod => mod.Editor);
},
{ ssr: false }
);
class MyEditor extends Component {
constructor(props) {
super(props);
this.state = { editorState: EditorState.createEmpty() };
}
onEditorStateChange = editorState => {
this.setState({ editorState });
};
render() {
const { editorState } = this.state;
return (
<div>
<Editor
editorState={editorState}
wrapperClassName="rich-editor demo-wrapper"
editorClassName="demo-editor"
onEditorStateChange={this.onEditorStateChange}
placeholder="The message goes here..."
/>
</div>
);
}
}
export default MyEditor;
请大家帮帮我,谢谢。
\react-draft-wysiwyg.js:1:393)
undefined window ... 这是同一个错误点吗? - Nikola Lukic