看了很久也没搞明白关于draft.js内容储存的问题。
数据如何储存?我自己想到两个方案
直接储存state:这当然是最方便的,使用的时候直接读取数据传递给editor就可以直接显示内容了。当然问题也比较突出,必须使用react+draftjs,同时设置readonly来现实内容。同时又产生了新的疑问。如果是评论的话,少则几条多则几十条上百条,难道要迭代n个editor出来?这样会不会有问题?
导出html。使用draft-js-export-html导出html储存数据。通过convertFromHtml倒入Editor。
不知道各位有什么好的想法?同时我不确定那种方案是最好的。
draft.js 没使用过,花了点时间看了一遍文档,他的目标是做一个富文本编辑器框架,所以他的格式也比较复杂。
如果你的内容主要是用来显示,那么一个轻量易于显示的格式是很必要的,方案2可行。
如果你同时在乎编辑内容的精确控制,避免每次转换格式造成不一样,最简单的办法是存两份,每次编辑总是编辑原始格式,保存时多输出一份用来显示的格式,这样转换总是单向的。