1.
yarn add react-draft-wysiwyg draft-js draftjs-to-html html-to-draftjs immutable
这个玩意不好用 放弃 改用ueditor
当前最新版本为1.4.3.3
下载地址
https://github.com/fex-team/ueditor/releases
2.开始
解压以后放在public下

在common下新建editor.js

editor.js
import React, { Component } from 'react';
export default class UEditor extends Component {
componentDidMount() {
let script = document.createElement("script");
script.setAttribute('src', 'ueditor/ueditor.config.js');
document.getElementsByTagName('head')[0].appendChild(script);
script = document.createElement("script");
script.setAttribute('src', 'ueditor/ueditor.all.min.js');
document.getElementsByTagName('head')[0].appendChild(script);
script.onload = () => {
let UE = window.UE;
var ue = UE.getEditor("container", {
UEDITOR_HOME_URL: '../ueditor/',
serverUrl: '/ueditor',
initialFrameHeight: 300,
toolbars: [
[
'undo', //撤销
'redo', //重做
'bold', //加粗
'italic', //斜体
'underline', //下划线
'strikethrough', //删除线
'subscript', //下标
'superscript', //上标
'source', //源代码
'blockquote', //引用
'pasteplain', //纯文本粘贴模式
'horizontal', //分隔线
'removeformat', //清除格式
'unlink', //取消链接
'inserttitle', //插入标题
'simpleupload', //单图上传
'insertimage', //多图上传
'link', //超链接
'emotion', //表情
'spechars', //特殊字符
'searchreplace', //查询替换
'map', //Baidu地图
'insertvideo', //视频
'justifyleft', //居左对齐
'justifyright', //居右对齐
'justifycenter', //居中对齐
'justifyjustify', //两端对齐
'fullscreen', //全屏
'imagecenter', //居中
'edittip ', //编辑提示
'customstyle', //自定义标题
'background', //背景
'scrawl', //涂鸦
'music', //音乐
'inserttable', //插入表格
'drafts', // 从草稿箱加载
'charts', // 图表
'fontfamily', //字体
'fontsize', //字号
'insertcode', //代码语言
'insertorderedlist', //有序列表
'insertunorderedlist', //无序列表
'lineheight', //行间距
'rowspacingtop', //段前距
'rowspacingbottom', //段后距
'forecolor', //字体颜色
'backcolor', //背景色
'preview', //预览
]
]
});
this.editor = ue;
ue.addListener('contentChange', () => {
this.props.onChange(ue.getContent())
})
}
}
componentWillUnmount() {
this.editor.destroy();
let child = document.getElementById("edui_fixedlayer")
child.parentNode.removeChild(child);
}
render() {
return (
<div>
<textarea id="container" name="container" type="text/plain" onChange={() => { }}
value={this.props.content} style={{ margin: "15px 0" }}>
</textarea>
</div>
)
}
}3.引用
import UEditor from 'pages/common/Editor/Editor';
onEditorChange = (editorContent) => {
this.setState({
editorContent:editorContent
});
};
<Form.Item name='content2' label="内容2">
<UEditor content={this.state.editorContent} onChange={this.onEditorChange} width="465px" height="700px" ue={this.ue} />
</Form.Item>4.提交时获取值
params.editorContent=that.state.editorContent;
下一篇 实现菜单和路由统一管理
本文为看恩吧原创文章,转载无需和我联系,但请注明来自knsay.com