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

React后台管理系统-file-uploader组件的更多相关文章

  1. React后台管理系统-添加商品组件

    引入了CategorySelector 二级联动组件.FileUploader图片上传组件和RichEditor富文本编辑组件 import React from 'react'; import MU ...

  2. React后台管理系统- rc-pagination分页组件封装

    1.用户列表页面使用的rc-pagination分页组件 Github地址: https://github.com/react-component/pagination 2.安装 cnpm insta ...

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

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

  4. 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件

    实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...

  5. 【共享单车】—— React后台管理系统开发手记:主页面架构设计

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  6. react后台管理系统路由方案及react-router原理解析

        最近做了一个后台管理系统主体框架是基于React进行开发的,因此系统的路由管理,选用了react-router(4.3.1)插件进行路由页面的管理配置. 实现原理剖析 1.hash的方式   ...

  7. 《React后台管理系统实战 :二》antd左导航:cmd批量创建子/目录、用antd进行页面布局、分离左导航为单独组件、子路由、动态写左导航、css样式相对陷阱

    一.admin页面布局及路由创建 0)cmd批量创建目录及子目录 //创建各个目录,及charts和子目录bar md home category product role user charts\b ...

  8. 【共享单车】—— React后台管理系统开发手记:AntD Form基础组件

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  9. 《React后台管理系统实战 :三》header组件:页面排版、天气请求接口及页面调用、时间格式化及使用定时器、退出函数

    一.布局及排版 1.布局src/pages/admin/header/index.jsx import React,{Component} from 'react' import './header. ...

  10. 【共享单车】—— React后台管理系统开发手记:UI菜单各个组件使用(Andt UI组件)

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

随机推荐

  1. Apple开发者账号更改公司名称

    对于大多数的开发者而言,可能很少遇见要修改账户的公司名称的问题,本来公司之前是这个名称,但是后来改名为另外的名称,这样的话在Apple开发者账号上的公司名称再用就不好了,所以就需要到Apple dev ...

  2. A^B mod (大数运算)

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; ; cha ...

  3. 【ACM】阶乘之和 - 避免重复计算

    阶乘之和 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3! ...

  4. Unity Gizmos可视化辅助工具

    所有gizmo绘制需要在脚本的OnDrawGizmos或OnDrawGizmosSelected里函数完成. OnDrawGizmos在每帧调用.所有在OnDrawGizmos中渲染的gizmos都是 ...

  5. Hello ASP.NET on Docker -- CentOS

    1.docker pull microsoft/aspnet 2.docker run -p 5004:2015 microsoft/aspnet --穿越后 3.cd ~ && wg ...

  6. phpcms文件结构

    主要目录部分 /admin 管理后台目录       -- /skin/    后台样式       -- /templates/    后台样式模板 /api api接口 /corpandresiz ...

  7. SpringBoot | 番外:使用小技巧合集

    前言 最近工作比较忙,事情也比较多.加班回到家都十点多了,洗个澡就想睡觉了.所以为了不断更太多天,偷懒写个小技巧合集吧.之后有时间都会进行文章更新的.原创不易,码字不易,还希望大家多多支持!话不多说, ...

  8. 性能测试学习第五天_loadrunner概述

    1.为什么要进行性能测试(性能测试贯穿于软件生命周期) The failure of a mission-critical application can be costly. Assure perf ...

  9. 4.0.3的mongodb 安装和java使用

    一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的github项目地址 https://github.com/247292980/spring- ...

  10. 全栈工程师,也叫全端工程师,英文FullStackdevelopver。是指掌握多种技能,并能利用多种技能独立完成产品的人。

    全栈工程师的发展 在系统全面的大公司,全栈工程师并没有一个稳定的发展职位.我无比赞同知乎那个帖子里面这样的一句话: 一个真正的全栈工程师,目标只有一个:创业. 听起来有些悲凉,但事实就是如此.任何一个 ...