wangEditor3 React 上传图片

本文介绍如何在React项目中安装并使用wangEditor3富文本编辑器,包括配置图片上传、监听变化及封装子组件的方法。

官网地址: https://www.kancloud.cn/wangfupeng/wangeditor3/332599

首先,在 React 项目中安装 wangEditor3 插件

npm install wangeditor 

封装的子组件


import React, { PureComponent } from 'react'
import E from 'wangeditor'
import prefix from '../../config'

class Editor extends PureComponent {
  constructor(props) {
    super()
    this.state = {
      value: props.value,
    }
  }

  componentWillReceiveProps(nextProps) {
    if (this.props.value !== nextProps.value) {
      this.setState({
        value: nextProps.value,
      })
      this.onChange(nextProps.value)
    }
  }

  componentDidMount() {
    const { value, otherProps } = this.props
    this.editor = new E(this.editorDom)
    this.editor.customConfig = {
	    uploadImgServer: `${prefix}/image/upload`, // 上传图片到服务器
		uploadImgMaxSize: 2 * 1024 * 1024, // 将图片大小限制为 2M
		uploadImgHooks: {	
	    	customInsert: function (insertImg, result, editor) {
	      	result.data.map((item, i) => {
	        	var url = result.data[i].filePath
	        	insertImg(url)
	      	})
    },
  	},
    onchange: this.onChange,
	...otherProps,
    }
    this.editor.create()
    this.editor.txt.html(value)
  }
  componentDidUpdate(prevProps, prevState) {
    if ('value' in this.props && prevState.value !== this.state.value) {
      this.editor.txt.html(this.state.value || '')
    }
  }

  onChange = (html) => {
    const { onChange } = this.props
    if (onChange) onChange(html)
  }

  render() {
    return (
      <div
        ref={(node) => {
          this.editorDom = node
        }}
      />
    )
  }
}

export default Editor

父组件

import React, { Component } from 'react'
import Editor from 'components/Editor'

class Edit extends BaseComponent {
  state={
  	editor: ''
  }
  inputChangeHandler(val, key) {
    this.setState({
    	[key]:val
    })
  }
  render() {
    return (
	     <Editor onChange={(val) => this.inputChangeHandler(val, 'editor')}/>
    )
  }
}
export default Edit 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值