draft-js:将原始内容/ HTML转换回EditorState后文本颜色丢失

时间:2017-05-08 18:30:58

标签: javascript reactjs rendering draftjs

JSFiddle:https://jsfiddle.net/wc4cxnvx/

我输入“这是非常有趣的东西”并在编辑器中将文本设为绿色,然后使用convertToRaw保存为原始内容:

{
    "entityMap":{},
    "blocks":[{"key":"5bbf7","text":"this is very interesting thing",
               "type":"unstyled",
               "depth":0,
               "inlineStyleRanges":[{"offset":0,"length":30,"style":"color-rgb(26,188,156)"}],
               "entityRanges":[],
               "data":{}}]
 }

原始数据等同于HTML:

<p><span style="color: rgb(26,188,156);">this is very interesting thing</span></p>

我尝试使用原始内容和HTML恢复编辑器状态,既不在编辑器中显示文本颜色。对于每种情况,只显示没有绿色的简单“这是非常有趣的事情”。

我用来恢复编辑的代码:

来自raw:

editorState = EditorState.createWithContent(convertFromRaw(raw));

来自Html

let htmlBlocks = convertFromHTML(html);
let editorState = EditorState.createWithContent(ContentState.createFromBlockArray(htmlBlocks.contentBlocks, htmlBlocks.entityMap));

draft-js版本是0.10。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这不是草案js的错误。这是我使用的库中发生的错误。一旦我升级到最新版本,这个问题就消失了。