前言:富文本編輯器Rich Text Editor, 簡稱 RTE, 是一種可內嵌於瀏覽器,所見即所得的文本編輯器。javascript
1、安裝插件css
react-draft-wysiwyg: 文本編輯器插件html
draftjs-to-html:文本轉換爲html的插件java
yarn add react-draft-wysiwyg draftjs-to-html --save
2、富文本編輯器實現react
import React from 'react' import {Card, Button, Modal} from 'antd' import {Editor} from 'react-draft-wysiwyg' import draftjs from 'draftjs-to-html' import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css' export default class RichText extends React.Component{ state = { showRichText: false, editorContent: '', editorState: '' } handleClearContent = () => { //清空文本 this.setState({ editorState: '' }) } handleGetText = () => { //獲取文本內容 this.setState({ showRichText: true }) } onEditorStateChange = (editorState) => { //編輯器的狀態 this.setState({ editorState }) } onEditorChange = (editorContent) => { //編輯器內容的狀態 this.setState({ editorContent }) } render(){ const { editorState, editorContent } = this.state; return ( <div> <Card> <Button type="primary" onClick={this.handleClearContent}>清空內容</Button> <Button type="primary" onClick={this.handleGetText} style={{marginLeft: 10}}>獲取html文本</Button> </Card> <Card title="富文本編輯器"> <Editor editorState={editorState} onEditorStateChange={this.onEditorStateChange} onContentStateChange={this.onEditorChange} toolbarClassName="toolbarClassName" wrapperClassName="wrapperClassName" editorClassName="editorClassName" onEditorStateChange={this.onEditorStateChange} /> </Card> <Modal title="富文本" visible={this.state.showRichText} onCancel={() =>{ this.setState({ showRichText: false }) }} footer={null}> {draftjs(this.state.editorContent)} </Modal> </div> ) } }
注:項目來自慕課網 瀏覽器