1.React文件上传组件github地址: https://github.com/SoAanyip/React-FileUpload

2.Util里边新建file-uploader文件夹,里边新建index.jsx

  1. import React from 'react';
  2. import FileUpload from './react-fileupload.jsx';
  3. class FileUploader extends React.Component{
  4.     render(){
  5.         const options={
  6.             baseUrl :'/manage/product/upload.do',
  7.             fileFieldName : 'upload_file',
  8.             dataType : 'json',
  9.             chooseAndUpload : true,
  10.             uploadSuccess : (res) => {
  11.                 this.props.onSuccess(res.data);
  12.             },
  13.             uploadError : (err) => {
  14.                 this.props.onError(err.message || '上传图片出错啦');
  15.             }
  16.         }
  17.         return (
  18.             <FileUpload options={options}>
  19.                 <button className="btn btn-xs btn-default" ref="chooseAndUpload">请选择图片</button>
  20.             </FileUpload>
  21.         )
  22.     }
  23. }
  24. export default FileUploader;

3.在save.jsx里边使用FileUploader组件

  1. <div className="form-group">
  2.                       <label className="col-md-2 control-label">商品图片</label>
  3.                       <div className="col-md-10">
  4.                       {
  5.                             this.state.subImages.length ? this.state.subImages.map(
  6.                                   (image, index) => (
  7.                                   <div className="img-con" key={index}>
  8.                                       <img className="img" src={image.url} />
  9.                                       <i className="fa fa-close" index={index} onClick={(e) => this.onImageDelete(e)}></i>
  10.                                   </div>)
  11.                               ) : (<div>请上传图片</div>)
  12.                           }
  13.                       </div>
  14.                       <div className="col-md-offset-2 col-md-10 file-upload-con">
  15.                       <FileUploader onSuccess={(res) => this.onUploadSuccess(res)}
  16.                               onError={(errMsg) => this.onUploadError(errMsg)}/>
  17.                       </div>
  18.                   </div>

4.图片上传成功后执行nUploadSuccess函数,更新state里边subImages数据

  1. //上传图片成功
  2.   onUploadSuccess(res){
  3.       let subImages = this.state.subImages;
  4.       subImages.push(res);
  5.       this.setState({
  6.           subImages : subImages
  7.       });
  8.   }

5.删除图片

  1. // 删除图片
  2.     onImageDelete(e){
  3.        let index = parseInt(e.target.getAttribute('index')),
  4.            subImages = this.state.subImages;
  5.        subImages.splice(index, 1);
  6.        this.setState({
  7.            subImages : subImages
  8.        });
  9.    }

更多专业前端知识,请上 【猿2048】www.mk2048.com

React后台管理系统-file-uploader组件相关推荐

  1. React后台管理系统-首页Home组件

    1.Home组件要显示用户总数.商品总数和订单总数,数据请求后端的 /manage/statistic/base_count.do接口,返回的是 this.state = {            u ...

  2. React后台管理系统-品类选择器二级联动组件

    React后台管理系统-品类选择器二级联动组件 品类选择器二级联动 posted on 2018-06-26 22:21 gisery 阅读( ...) 评论( ...) 编辑 收藏

  3. 【开发篇】10分钟快速搭建React后台管理系统模板

    React后台管理系统模板 github 我又回来了!!!学完前端react,再学spring,这周或者下周写spring有关的!!! 一.准备React 1.建立react应用 npx create ...

  4. P6-Vue3后台管理系统-构建业务组件连通公共组件

    P6-Vue3后台管理系统-构建业务组件连通公共组件 1.概述 这篇文章我们将创建业务模块,并且与公共组件进行连通. 2.构建业务模块 2.1.构建Home 2.2.构建VideoManage 2.3 ...

  5. 从头开始react后台管理系统-安装ant-Design

    从头开始react后台管理系统-安装ant-Design introduce 在做微信小程序, 想着顺便做一个管理系统的 随便扯扯 我是个菜鸡,很菜很菜的菜鸡,春招各家凉,现在还是0offer.心情很 ...

  6. react后台管理系统项目总结

    React后台管理项目 1.创建一个项目 2.配置一个ui插件库 开始 实现跳转 快速获取路由地址 将路由和组件映射 axios请求 实现登录模块 隐藏二级路由 按照价格排序或者按照销量等排序 管理员 ...

  7. React后台管理系统-商品列表搜索框listSearch组件

    1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap">               <div classN ...

  8. 《React后台管理系统实战:十一》可视图表及首页图表

    一.简介及环境安装 les135- 1.常用数据可视化图表库 1) echarts a. https://echarts.baidu.com/ b. 百度开源, 如果要在 react 项目中使用, 需 ...

  9. 《React后台管理系统实战:五》产品管理(二):产品添加页面及验证等、富文本编辑器、提交商品

    一.产品添加基础部分 1 home.jsx点添加按钮动作跳转到添加商品页 点击:onClick={() => this.props.history.push('/product/add-upda ...

最新文章

  1. css3宽度变大动画_不会仪表?太尴尬了。14种动画让你轻松掌握各种流量计工作原理...
  2. 我的世界minecraft-Python3.9编程(4)-近实时刷新玩家位置
  3. 天地图怎么看历史图像_解密:看猪八戒是怎么由一头猪变成天蓬元帅的
  4. Toast 消息框应用。
  5. Duplicate Symbol链接错误的原因总结和解决方法[转]
  6. markdown 目录缩进_页面排版很难吗?一起来学Markdown吧!01基础语法
  7. office excel2013如何启用solver选项
  8. Gazebo Ros入门
  9. 【收藏】10个重要问题概览Transformer全部内容
  10. python123监考系统可以识别_在线考试系统的视频监考怎么防作弊?
  11. gear操作系统 基于web的linux开放平台,支持Linux操作系统 开源飞机模拟器FlightGear...
  12. 获取网络时间(国家标准时间)
  13. Db4o数据库:细说查询
  14. 计算机网络-详细版-王道
  15. mysql查询 多门课程的平均成绩_数据库学生成绩分析问题.doc
  16. 用户注册时图片验证码和短信验证码的逻辑
  17. 大数据血缘分析系统设计
  18. 【华为】某中小型企业网 组网案例—总公司+分公司模式
  19. 吐槽微信公众号技术团队的故障处理效率
  20. Sql Server服务远程过程调用失败

热门文章

  1. 点击事件为什么会失效_Spring事务原理?事务在方法间如何传播?为什么会失效?...
  2. java 访问内部类的属性_java中的内部类详细总结
  3. 信号与系统 chapter9 关于信号与系统中微分方程的求解
  4. 组合逻辑电路运算法则
  5. 几道题帮你搞定数据选择器
  6. python作用域的理解-理解Python的UnboundLocalError(Python的作用域)
  7. gsoap初始化释放_通过gsoap使用webservice
  8. 【chromium】 渲染显示相关概念
  9. 微信小程序正确的异步request请求,根据经纬度获取地理位置信息
  10. JavaScript | JSON基本格式