Javascript 窗口未定义-react草稿wysiwyg与下一个js(ssr)一起使用
我正在使用NextJSforSSR开发一个富文本编辑器,用于将纯html转换为编辑器内容。我发现这个错误窗口没有定义,所以我搜索这个github的解决方案 它使用了nextjs的动态导入功能 而不是直接从“react draft wysiwyg”导入编辑器Javascript 窗口未定义-react草稿wysiwyg与下一个js(ssr)一起使用,javascript,reactjs,next.js,react-draft-wysiwyg,Javascript,Reactjs,Next.js,React Draft Wysiwyg,我正在使用NextJSforSSR开发一个富文本编辑器,用于将纯html转换为编辑器内容。我发现这个错误窗口没有定义,所以我搜索这个github的解决方案 它使用了nextjs的动态导入功能 而不是直接从“react draft wysiwyg”导入编辑器import{Editor} 它使用此代码动态导入编辑器 const Editor = dynamic( () => { return import("react-draft-wysiwyg").then(
import{Editor}代码>
它使用此代码动态导入编辑器
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;
import React,{Component}来自“React”;
从“草稿js”导入{EditorState};
//从“react draft wysiwyg”导入{Editor};
从“下一个/动态”导入动态;
常量编辑器=动态(
() => {
返回导入(“react draft wysiwyg”)。然后(mod=>mod.Editor);
},
{ssr:false}
);
类MyEditor扩展组件{
建造师(道具){
超级(道具);
this.state={editorState:editorState.createEmpty()};
}
onEditorStateChange=editorState=>{
this.setState({editorState});
};
render(){
const{editorState}=this.state;
返回(
);
}
}
导出默认MyEditor;
请帮帮我,伙计们。谢谢。尝试在React使用useffect
hook更新DOM后返回编辑器。例如:
const[editor,setEditor]=useState(false)
useffect(()=>{
setEditor(真)
})
返回(
{编辑(
):null}
)
我有samo错误日志:\react draft wysiwyg.js:1:393)
未定义窗口。。。是同一个错误点吗?错误信息是什么?它认为这是因为我们在服务器端呈现的组件没有定义窗口