draft.js 内容储存及显示

看了很久也没搞明白关于draft.js内容储存的问题。
数据如何储存?我自己想到两个方案

  1. 直接储存state:这当然是最方便的,使用的时候直接读取数据传递给editor就可以直接显示内容了。当然问题也比较突出,必须使用react+draftjs,同时设置readonly来现实内容。同时又产生了新的疑问。如果是评论的话,少则几条多则几十条上百条,难道要迭代n个editor出来?这样会不会有问题?

  2. 导出html。使用draft-js-export-html导出html储存数据。通过convertFromHtml倒入Editor。

不知道各位有什么好的想法?同时我不确定那种方案是最好的。

阅读 8k
3 个回答

draft.js 没使用过,花了点时间看了一遍文档,他的目标是做一个富文本编辑器框架,所以他的格式也比较复杂。

如果你的内容主要是用来显示,那么一个轻量易于显示的格式是很必要的,方案2可行。

如果你同时在乎编辑内容的精确控制,避免每次转换格式造成不一样,最简单的办法是存两份,每次编辑总是编辑原始格式,保存时多输出一份用来显示的格式,这样转换总是单向的。

draft.js本身相当底层,提供了大量的富文本编辑器需要的函数,如果不是确定需要的话建议使用别人已经封装好的插件。
另外关于数据存储,楼上的建议是正确的

我也是用到了这个编辑器,现在有个问题保存html没有问题, 但是无法在原编辑器中显示。

editorState={editorContent}

这个editorContent 无法保存到数据库中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题