react.js 之 批量添加与删除功能

最近做的CMS需要用到批量添加图片的功能:在添加文件的容器盒子内,有两个内容,分别是:添加按钮与被添加的选择文件组件。

结构分析:

  • 被添加的组件,我们称为:UploadQiNiuFiles(七牛文件上传组件),含一个删除当前组件的删除按钮
  • 添加按钮的事件
  • 被添加组件存放的容器

代码分析:

  • 添加组件存放的容器:<div className="divBorder">

    • <div className="divBorder">
           {addToBtn}  //添加按钮
           {items}     //被添加的组件
      </div>
      .divBorder {
          position: relative;
          width: 100%;
          height: auto;
          margin-top: 5%;
          border: 1px solid #e3e3e3;
          padding: 30px 10px;
          margin-bottom: 5%;
      
          -moz-position: relative;
          -moz-width: 100%;
          -moz-height: auto;
          -moz-border: 1px solid #e3e3e3;
          -moz-padding: 30px 10px;
          -moz-margin-bottom: 5%;
          -webkit-position: relative;
          -webkit-width: 100%;
          -webkit-height: auto;
          -webkit-border: 1px solid #e3e3e3;
          -webkit-padding: 30px 10px;
          -webkit-margin-bottom: 5%;
      }
  • 被添加的组件:UploadQiNiuFiles
    • /**
       * Created by wf on 2016/5/16.
       */
      import React,{Component} from ‘react‘;
      import {render} from ‘react-dom‘;
      import ReactBootstrap , {Input,Button,ButtonToolbar} from ‘react-bootstrap‘;
      import style from ‘../../../../css/meeting_data.css‘;
      
      //七牛上传公共组件
      import QiniuUpload from ‘qiniu_uploader‘;
      
      export default class UploadQiNiuFiles extends Component {
          constructor(props){
              super(props);
          }
      
          //获取qiniukey
          getQiniuKey(qiniuKey){
              this.props.setQiniuKey(qiniuKey);
          }
      
          //获取qiniutoken
          getQiniuUptoken() {
              this.props.acquireToken();
          };
      
          //删除{qiniu}与{deleteQiNiu}内容,是把页面上的这两个内容一起删除
          deleteType(){
              let index = this.props.index;
              this.props.callbackParent(index);
          }
      
          render(){
      
              const qiniu = (
                  <div className="col-md-8 qiNiuBtn">
                      <QiniuUpload containerId="containerId25" pickfilesId="pickfilesId25" qiniuToken={this.props.meetingState.token} callback={this.getQiniuKey.bind(this)} getQiniuUptoken={this.getQiniuUptoken.bind(this)} />
                  </div>
              );
      
              const deleteQiNiu = (
                  <div className="col-md-4">
                      <Button bsStyle="danger" className="deleteQiniu" onClick={this.deleteType.bind(this)}>删除</Button>
                  </div>
      
              );
      
              return(
                  <div>
                      <div className="uploadBox">
                          {qiniu}
                          {deleteQiNiu}
                      </div>
                  </div>
              );
          }
      }

      七牛上传组件,在http://www.cnblogs.com/post/readauth?url=/baiyygynui/p/5499255.html中巳作介绍,在制作这个组件时,请参考这个链接。

  • 在div为divBorder的容器内操作添加事件
    • 首先要加载,七牛上传组件:

      UploadQiNiuFiles,它的加载路径为webpack中的方法:
    • /**常用组件路径简写为:
         *
         * 例:config: path.join(__dirname,"./build/config.js")
         * config  变量名
         * path.join(__dirname,"./build/config.js")  config的路径
         *
         * 使用方法: import {变量} from ‘config‘
         * //七牛上传公共组件
           import QiniuUpload from ‘qiniu_uploader‘;
         * **/
        resolve: {
          alias: {
            qiniu_uploader: path.join(__dirname,"./public_component/qiniu_upload/QiniuUpload.js"),
            storage: path.join(__dirname,"./utils/Storage.js"),
            config: path.join(__dirname,"./build/config.js")
          }
        }
      import React,{Component} from ‘react‘;
      import {render} from ‘react-dom‘;
      import ReactBootstrap , {Input,Button,ButtonToolbar} from ‘react-bootstrap‘;
      import style from ‘../../../../css/meeting_data.css‘;
      
      //七牛上传公共组件
      import QiniuUpload from ‘qiniu_uploader‘;
    • 批量上传文件的组件名称,我定义为:
      UploadQiNiuFiles
    • 
      
时间: 2024-11-04 21:31:15

react.js 之 批量添加与删除功能的相关文章

使用EasyUI实现添加和删除功能

        增删该查是任何一个项目都少不了的功能操作,这篇博文主要简介一下如何使用EasyUI实现添加和删除功能.         首先,导入EasyUI的js代码: <link href="~/EasyuiSource/themes/default/easyui.css" rel="stylesheet" /> <link href="~/EasyuiSource/themes/icon.css" rel="st

js数组的添加和删除

js中数组元素常用添加方法是直接添加.push方法以及unshift方法 删除方法则是delete.pop.shift 集修改方法为一身的则是splice 1.添加: (1)直接添加通常都是这样 var arr=[]; arr[0]="first"; arr[1]="second"; (2)push push方法向数组的末尾添加一个或多个元素,并返回新的长度 var arr=["first","second"]; //arr.

js数值的添加与删除

js中数组元素常用添加方法是直接添加.push方法以及unshift方法 删除方法则是delete.pop.shift 集修改方法为一身的则是splice 1.添加: (1)直接添加通常都是这样 var arr=[]; arr[0]="first"; arr[1]="second"; (2)push push方法就是将要添加的元素添加到数组的末尾,数组长度+1 var arr=["first","second"]; //arr

FileSystemObject组件新建读取添加修改删除功能实例

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>FileSystemObject组件应该实例</title> </head> <

Ubuntu下wxWidgets学生公寓管理编程,sqlite3的用法(mysql数据库),窗体,下面是部分添加和删除功能,其他功能可以联系我。。

以下是学生公寓信息管理的增加和删除,仅供参考.. void StuManaFrame::OnAdd(wxCommandEvent &event) { //add student's dormitory infomation sqlite3 *db=NULL; int flag; char *errmsg; flag = sqlite3_open("./stuinfo.db",&db); if(SQLITE_OK != flag) { wxLogMessage("

批量添加或删除用户

========================================================================================== #!/bin/bash # if [ ! $# -eq 1 ];then echo './user.sh --add|--del' exit 1 fi case "$1" in --add) for i in {1..10} do if id user$i &>/dev/null ;then

原生js事件的添加和删除

在IE浏览器中添加或删除事件用attachEvent.detachEvent.在其他标准浏览器中则用addEventListener.removeEventListener.下面的对事件的添加和删除做了封装.直接看代码吧! /** * @description 事件绑定,兼容各浏览器 * @param target * 事件触发对象 * @param type * 事件 * @param func * 事件处理函数 */ function bind(target, type, func) { i

123批量添加和删除单元格(扩展知识:设置单元格的尺寸和颜色)

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController 4 @property (strong, nonatomic) NSMutableArray *mArrDataSource; 5 6 @end ViewController.m 1 #import "ViewController.h" 2 3 @interface Vi

Windows批量添加和删除IP

随着天气变冷了,好多小伙伴都开始变懒了,都想用最快的方式完成任务 下面给大家介绍一下Windows批量添加和删除IP的办法 (1)批量添加IP 直接在CMD下边运行下边命令. for /l %i in (2,1,254) do netsh interface ip add address "本地连接" 192.168.1.%i 255.255.255.0for /l %i in (2,1,62) do netsh interface ip add address "本地连接&