首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在react-draft-wysiwyg编辑器中加载文本时出现问题

在react-draft-wysiwyg编辑器中加载文本时出现问题
EN

Stack Overflow用户
提问于 2020-05-05 17:18:21
回答 1查看 1.8K关注 0票数 2

在我的项目中,我集成了来自react-draft-wysiwyg的编辑器。现在,我需要通过加载一些文本数据来测试文本编辑器。我尝试遵循documentation,我的代码目前看起来如下所示:

代码语言:javascript
复制
import React, { Component } from 'react';
import { Editor } from 'react-draft-wysiwyg';
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
import './textEditor.css';
import { convertFromRaw } from 'draft-js';


const content = {
    "entityMap":{

    },
    "blocks":[
       {
          "key":"637gr",
          "text":"Initialized from content state.",
          "type":"unstyled",
          "depth":0,
          "inlineStyleRanges":[

          ],
          "entityRanges":[

          ],
          "data":{

          }
       }
    ]
 };
export default class RichTextEditor extends Component {

    constructor(props) {
        super(props);
        const contentState = convertFromRaw(content);
        this.state = {
          contentState,
        }
      }

      onContentStateChange: Function =  (contentState) => {
        this.setState({
          contentState,
        });
      }; 
    render() {
        const { contentState } = this.state;
        return (
            <div>
                <Editor
                    editorClassName={"report-editor"}
                    editorState={this.props.editorState}
                    onEditorStateChange={this.props.onEditorStateChange}
                    onContentStateChange={this.props.onContentStateChange}
                />
            </div>
        )
    }
}

我尝试按照文档进行操作,但是json没有加载。我试图理解这些变通方法,但我无法理解,因为我以前从未使用过DraftJS。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-07 17:58:50

您必须使用EditorState.createWithContent根据您的内容数据创建编辑器状态,并将其传递给Editor组件,如下所示:

代码语言:javascript
复制
import React, { Component } from 'react';
import { Editor } from 'react-draft-wysiwyg';
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
import './textEditor.css';
import { convertFromRaw, EditorState } from 'draft-js';

const content = { ... };

export default class RichTextEditor extends Component {

    constructor(props) {
        super(props);
        const contentState = convertFromRaw(content);
        const editorState = EditorState.createWithContent(contentState);

        this.state = {
          contentState,
          editorState,
        };
    }

    render() {
        const { editorState } = this.state;
        return (
            <div>
                <Editor
                    editorClassName={"report-editor"}
                    editorState={editorState}
                    onEditorStateChange={this.props.onEditorStateChange}
                    onContentStateChange={this.props.onContentStateChange}
                />
            </div>
        );
    }
}

您可以在here上查看一个实时示例

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61609739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档