第一次使用富文本編輯器辖所,遇到了很多的坑,與大家分享磨德。
因為項目原因缘回,使用了react-draft-wysiwyg;
配合使用插件如下:
DEMO1效果圖如下:
steps
一:安裝所用插件
yarn add?react-draft-wysiwyg
yarn add draft-js
yarn add draftjs-to-html
yarn add?html-to-draftjs
二:初始化一個空白的編輯器
(4)提交到后臺:雙方約定接收html字符串('<p>12344444</p>');
重點來了:
1)看看“1”處的數(shù)據(jù)結(jié)構(gòu)到底是怎么樣的
這是一個ContentState對像結(jié)構(gòu)
console.log(editorState.getCurrentContent())
2)看看“2”處的數(shù)據(jù)結(jié)構(gòu)
convertToRaw()方法
將一個ContentState對象典挑,轉(zhuǎn)換為一個原始的JS結(jié)構(gòu)酥宴。
在保存編輯器狀態(tài)以用于存儲,轉(zhuǎn)換為其他格式或應(yīng)用程序中的其他用途時使用
console.log(convertToRaw(editorState.getCurrentContent()))
注意:多媒體您觉,image的“type”跟普通的text(unstyled)不一樣,是“atomic”拙寡。文本的轉(zhuǎn)換之間。
3)看看“3”處的數(shù)據(jù)結(jié)構(gòu)
draftToHtml()方法
將原始js格式轉(zhuǎn)換成html字符串琳水;
console.log(draftToHtml(convertToRaw(editorState.getCurrentContent())))
? ??????????????????????第一個demo講解結(jié)束分割線
????????????????????????????????????DEMO2
編輯有值的富文本
難點:解析html字符串肆糕,讓其顯示在富文本編輯器中,可編輯在孝。
理想中的效果圖:
實際你遇到的:應(yīng)該顯示圖片的地方卻顯示成一個相機诚啃;
Steps
draft官網(wǎng)解析的方式。用了自帶的converFromHTML去轉(zhuǎn)換;
看一下轉(zhuǎn)換后的數(shù)據(jù)格式
text值在轉(zhuǎn)換后變成了相機的樣子浑玛。
所以問題就出現(xiàn)在這里了绍申。text值是相機。
用插件“html-to-draftjs”去轉(zhuǎn)換顾彰,type值不再是相機极阅。問題迎刃而解;
這是我第一次使用富文本涨享,可能有些問題出有其他的解決方案筋搏,歡迎前來指教,謝謝2匏怼奔脐!