[英]How to display the saved content of CKEditor5 in React Js
我正在使用 CKEditor5 React Component Framework。我已經成功地將 CKEditor 集成到我的項目中。並且能夠使用它。 但問題是我必須將編輯器的內容保存到數據庫中,然后將其顯示到網站..我在內容中得到的所有內容
<blockquote><p>Hello from CKEditor 5!</p></blockquote>
並且在顯示時它不會應用 CkEditor 的 css 來顯示 ..
CKEDITOR IS 的設置
import React, { Component } from 'react'; import CKEditor from '@ckeditor/ckeditor5-react'; import Classiceditor from '@ckeditor/ckeditor5-build-classic'; export class ClassicEditor extends Component { constructor(){ super(); this.state = { content : "" } } onCashange = data => { console.log( "Called" ); this.setState({ content : data.getData() }) } render() { Classiceditor.builtinPlugins.map( plugin => console.log(plugin.pluginName) ); console.log("State", this.state.content); return ( <> <div className='App'> <h2> Using CKEditor</h2> <CKEditor editor = { Classiceditor } data = "<p>Hello from CKEditor 5!</p>" onInit = { editor => { //console.log( 'Editor is ready to use!', editor ) } } onChange = { ( event, editor ) => { this.onCashange( editor ); // const data = editor.getData(); // this.onChange( data ); // //console.log( { event, editor, data } ); }} onBlur = { editor => console.log("Blur", editor) } onFocus = { editor => { //console.log( "Focus", editor ) } } /> </div> <div className='editor'> { this.state.content } </div> </> ) } } export default ClassicEditor
React 不允許你直接渲染html
代碼。 相反,您必須使用dangerouslySetInnerHTML
屬性來執行此操作。 執行以下操作來解決您的問題,
<div dangerouslySetInnerHTML={this.createMarkup()} className='editor'></div>
並在類上有一個方法
createMarkup = () => {
return { __html: this.state.content };
}
這將確保您不會將原始 HTML 呈現到頁面。
您可以在此處閱讀有關此內容的更多信息
你可以像npm i react-render-html
一樣安裝 npm 包,在此處輸入鏈接描述並使用它:
<div className='...'>
{renderHTML(someHTML)}
</div>
以下是對上述問題的回答:
<div style={{wordWrap:'break-word',display:'inline-block'}}>
<div className="editor" dangerouslySetInnerHTML={{_html:this.state.content}}/>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.