如何将html css类属性(在React中也称为className)导入Draft.js EditorState?

时间:2018-01-20 11:00:22

标签: css reactjs wysiwyg draftjs draft-js-plugins

我想导入或粘贴一个带有class-name属性的简单html片段,以便在Draft.js编辑器中解析和激活这些类。 这个类名的解析和设置应该独立于html-tag类型,例如<div>, <span>, <b>, <strong>等。

起初,我认为这是一个与draft.js相关的标准问题,但我没有在网上找到任何答案,这就是我在这里陈述我的问题的原因。

我坚持这个:

我看到,当我使用这个简单的handlePastedText函数时,粘贴了正确的html代码:

    handlePastedText(text, html){
      console.log(html);
      return false;
    }

    // one <span class="blau">simple</span> test

使用这个draft-js编辑器:

    <Editor readOnly={this.state.readOnly} 
            editorState={this.state.editorState} 
            onChange={this.onChange}
            handlePastedText={this.handlePastedText.bind(this)}/>

但是,相应的draft-js编辑器状态不知道该类,因此在浏览器中没有相应地格式化。 EditorState是:

    {"entityMap":{},
     "blocks":[{ "key":"9fqpj","text":"one simple test",
                 "type":"unstyled",
                 "depth":0,
                 "inlineStyleRanges":[],
                 "entityRanges":[],
                 "data":{}}]}

支持这个html来源:

     <span data-text="true">one simple test</span>

我很想知道这个问题有一个优雅而简单的解决方案。 只需将classNames导入Draft.js编辑器? 也许我从一个错误的视角看到它,但我认为这对更广泛的观众是有益的,因为你可以在任何Draft.js conetentEditable编辑器中轻松处理,粘贴和格式化任何(外部)样式的片段。

提前谢谢!

0 个答案:

没有答案