React中使用UEditor
一般UEditor用于表单的新建和编辑
<FormItem {...formItemLayout} label='商品详情'>
{getFieldDecorator('detail', {
rules: [{ required: true, message: '请输入商品详情' }]
})(<Ueditor width={692} id="detail" toolbars={videoToolbar} />)}
</FormItem>
id和name要相同
表单提交的时候校验详情是否输入 (因为form.getFieldValue('detail')拿到的值是‘contentChange’,不能作为是否为空的凭证)
if (!getContent('detail')) {
form.setFields({
detail: {
value: getContent('detail'),
errors: [new Error(`请输入${type == 1 ? '音频' : '视频'}详情`)]
}
})
}
编辑的时候,需要将内容写入UEditor
edit:是否是编辑页 如果是新建页就不用写入
hasDetail:是否已经渲染好了detail componentWillReceiveProps会执行好几次 如果不判断是否已经渲染好了detail editor.ready会进入死循环
courseDetail.detail:渲染的数据
componentDidMount和componentWillReceiveProps都要执行相同的步骤 因为在实践过程中发现有少数情况 在进入编辑页或者刷新编辑页时editor不能被成功渲染
componentDidMount() {
const { courseDetail, edit, hasDetail, dispatch } = this.props
if (courseDetail.detail && edit && !hasDetail) {
const editor = getUeditor('detail')
editor.ready(function() {
dispatch({
type: 'courseManagement/saveHasDetail',
payload: true
})
editor.setContent(courseDetail.detail)
})
}
}
componentWillReceiveProps(nextProps) {
const { courseDetail, edit, hasDetail, dispatch } = nextProps
if (courseDetail.detail && edit && !hasDetail) {
const editor = getUeditor('detail')
editor.ready(function() {
dispatch({
type: 'courseManagement/saveHasDetail',
payload: true
})
editor.setContent(courseDetail.detail)
})
}
}
React中使用UEditor的更多相关文章
- 理解React中es6方法创建组件的this
首发于:https://mingjiezhang.github.io/(转载请说明此出处). 在JavaScript中,this对象是运行时基于函数的执行环境(也就是上下文)绑定的. 从react中的 ...
- 【原】React中,map出来的元素添加事件无法使用
在使用react中,经常用到react的map函数,用法和jquery里中的map一样,但是,如果你在每个map出来的元素中添加,你会发觉添加的事件无法关联, 比如,我们很多的评论,我需要在每个评论下 ...
- React中props.children和React.Children的区别
在React中,当涉及组件嵌套,在父组件中使用props.children把所有子组件显示出来.如下: function ParentComponent(props){ return ( <di ...
- asp.net中使用ueditor
原文地址:http://blog.uoolo.com/Article/16 还有在MVC中使用ueditor:http://blog.uoolo.com/Article/111 最初百度了一下“编辑器 ...
- Immutable 详解及 React 中实践
本文转自:https://github.com/camsong/blog/issues/3 Shared mutable state is the root of all evil(共享的可变状态是万 ...
- React中父组件与子组件之间的数据传递和标准化的思考
React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...
- React中使用CSSTransitionGroup插件实现轮播图
动画效果,是一个页面上必不可少的功能,学习一个新的东西,当然就要学习,如何用新的东西,用它的方法去实现以前的东西啦.今天呢,我就在这里介绍一个试用react-addons-css-transition ...
- 在React中使用Redux
这是Webpack+React系列配置过程记录的第六篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...
- React中的路由系统
React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...
随机推荐
- 玩转JavaScript module pattern精髓
JavaScript module pattern是一种常见的javascript编码模式.这种模式本身很好理解,但是有很多高级用法还没有得到大家的注意.本文,我们将回顾这种设计模式,并且介绍一些高级 ...
- poj3349 Snowflake Snow Snowflakes【HASH】
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 49991 Accep ...
- kitkat-s5p4418drone 记录
查看帮助: ./device/nexell/tools/build.sh -h 编译u-boot: ./device/nexell/tools/build.sh -b drone2 -t u ...
- dongle --NFC
A dongle is a small piece of hardware that attaches to a computer, TV, or other electronic device in ...
- centos7 安装python3.6 及模块安装演示
目录: 下载python3.6 安装python3.6的依赖 编译安装 更改链接 更改yum脚本的python依赖 修改gnome-weaktool配置文件 修改urlgrabber配置文件 1.下载 ...
- 基于 Spark 的文本情感分析
转载自:https://www.ibm.com/developerworks/cn/cognitive/library/cc-1606-spark-seniment-analysis/index.ht ...
- (转) 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
- zlib编译安装
从http://www.zlib.net/下载了最新的源代码 zlib提供了vs sln文件,在zlib-1.2.8\contrib\vstudio\目录有 其中的zlibstat是编译为静态库zli ...
- NodeJS学习笔记五
Promise简介 所谓Promise,就是一个对象,用来传递异步操作的消息. Promise对象有以下两个特点. (1)对象的状态不受外界影响.Promise对象代表一个异步操作,有三种状态:Pen ...
- NodeJS学习笔记二
类声明和类表达式 ES6 中的类实际上就是个函数,而且正如函数的定义方式有函数声明和函数表达式两种一样,类的定义方式也有两种,分别是:类声明.类表达式. 类声明 类声明是定义类的一种方式,就像下面这样 ...