• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > react.js CMS 删除功能的实现方法

react.js CMS 删除功能的实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了react.js菜鸟教程,react.js项目,react.js,react.js中文官网,react.js下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

页面效果图:

数据操作分析:

在查询表组件的  TableData.js 中操作如下内容:

给每一行绑定一个checkbox,且在点击这个 checkbox 时,触发 action 中的一个方法(formatPostCollectionList),这个方法是用来更新选中的实体数组。formatPostCollectionList为action中的方法,需要export

定义每一行的实体为一个数组,用变量 postCollections 表示

如果选中当前行,则更新实体数组中的数据;如果取消当前行,则删除实体中的数据;

参数为  row  ;

点击删除按钮后,使用 componentDitUpdate() 生命周期方法,在组件更新后调用。

如果删除成功,则执行 action 中的方法 clearPostCollection()。这个方法是用来清空当前行实体中的数据;

如果删除成功,最后执行  查询表的刷新重新加载数据的方法

更新实体数据与清空实体数据的方法,在 action 中执行。

代码分析:

表查询操作

1、调查询接口,Api中的方法

searchPostCollectionByActivityId(activityId, callback) {
    const queryParam = `/tob/post/search?activeId=${activityId}`;  //接口,使用``可以在URL中显示查询参数
    Config.get(queryParam, callback);
  }
</div>

2、action中操作查询数据的方法  postCollectionEntityList 存放接口中的所有数据

 

export function initPostCollection(row){
  return (dispatch, getState) => {
    let activityId = row.activityId;
    Api.searchPostCollectionByActivityId(activityId, params => {
      dispatch(initPostCollectionSetter(activityId,params));
    });
  }
}
function initPostCollectionSetter(activityId,params){
  return {
    type:INIT_POST_COLLECTION,
    activityId:activityId,
    data:{postCollectionEntityList:params}
  }
}
</div>

 3、TatleData 表组件中调用 action 的方法,至此 表数据 OK

export default class TableData extends Component {
  constructor(props){
    super(props);
  }

  componentDidMount() {
    const param = this.props.queryData;
    console.log("param === " + param);
    this.props.initPostCollection(param);//action中获取接口数据的方法
  }

  render(){
     // 定义postCollectionEntityList中的数据
    let postCollectionEntityList = [
      {
        postCollectionName:'',
        postCollectionId:'',
        activityId:''
      }
    ];
    //判断,如果postCollectionEntityList中有数据,则把数据显示出来
    if (this.props.postCollectionState.postCollectionEntityList) {
      postCollectionEntityList = this.props.postCollectionState.postCollectionEntityList;
      console.log("postCollectionEntityList" + postCollectionEntityList);
    }

    //acb 表数据
    return(
      <div><TableExit data={postCollectionEntityList} acb={this.props.initPostCollection}>
          <TableCloumnsExit dataField="activityTitle">活动名称</TableCloumnsExit>
          <TableCloumnsExit dataField="postCollectionName">帖子集名称</TableCloumnsExit>
          <TableCloumnsExit dataField="postCollectionId">帖子集编号</TableCloumnsExit>
          <TableCloumnsExit dataField="active" dataFormat={this.postCollectionFormatter}>修改</TableCloumnsExit>
          <TableCloumnsExit dataField="send" dataFormat={this.activeFormatter.bind(this)}>发送</TableCloumnsExit>
          <TableCloumnsExit dataField="send" dataFormat={this.questionBankFormatter.bind(this)}>题库</TableCloumnsExit>
        </TableExit>
      </div>
    );
  }
}
</div>

删除表数据操作

调删除接口,API中的方法

deletePostCollections (activityId ,params, callback) {
    let path = `/tob/post/deletePostCollection/${activityId}`; //删除接口
    Config.deleteWithNoResponse(path ,params, callback);
  }
</div>

action 中写删除数据的方法

删除实体

删除实体前要先 插入 checkbox

checkboxFormatter(cell,row) {
    return <input bsStyle="primary" type="checkbox"></input>
  }
</div>

查询表中使用 checkbox

<TableCloumnsExit dataField="alter" dataFormat={this.checkboxFormatter.bind(this)}>选择</TableCloumnsExit>
</div>

点击 checkbox 会触发 更新选中的实体数据的方法

checkboxFormatter(cell,row) {
    return <input bsStyle="primary" type="checkbox" onClick={this.props.formatPostCollectionList.bind(this,row)}></input>
  }
</div>

更新选中实体数据的方法,在action中编写

export function formatPostCollectionList(row) {
  return(dispatch, getState) => {
    let postCollectionId = row.postCollectionId; //获取每一行的ID
    let state = getState().postCollectionState;  //从postCollectionState()中拿到state并赋值给全局state
    let postCollections = state.postCollections; // 红色字体标注为实体中的数据容器
    let postCollectionItem = {
      postCollectionId:postCollectionId     //实体中的数据ID
    };
    if (postCollections) {  //postCollections 实体数据,可能 有数据
      let index = -1;   // index = -1 指默认实体中没有数据
      for (let i = 0 ;i < postCollections.length ;i++) { //如果实体中有数据,则循环
        let postCollection = postCollections[i];    //拿实体中的数据,给变量postCollection
        let id = postCollection.postCollectionId;   //从拿到的实体数据中,取每一个ID,方法对比(选中的数据与实体中的数据对比)
        if (postCollectionId == id) { //如果实体中的ID == 选中的ID
          index = i;         //把实体中选中的的数据 赋值为 i 
        }
      }
      if (index > -1) {         //如果实体的数据存在,不为空
        postCollections.splice(index,1);  //删除实体对象中index位置中的一个数据
      } else {
        postCollections.push(postCollectionItem); //如果实体数据为空,则push实体中的ID数据
      }
    } else {
      postCollections = []; // 第一次render时,实体数据可能为空 / 为undefined,那么将它定义为一个数组
      postCollections.push(postCollectionItem);  //给这个空数组push数据
    }
    dispatch(formatPostCollectionListSetter(postCollections));
  }
}
function formatPostCollectionListSetter(params){
  return {
    type:SET_POST_COLLECTIONS,
    data:{postCollections:params} //红色变量为实体数据
  }
}
</div>

选中实体数据后,点击删除按钮,会触发deletePostCollections  删除方法

export const DELETE_POST_COLLECTIONS = 'DELETE_POST_COLLECTIONS';
export function deletePostCollections(){  //点击删除按钮后,触发deletePostCollections删除方法
  return(dispatch, getState) => {
    let state = getState().postCollectionState;
    let activityId = state.activityId;
    let postCollections = state.postCollections; //实体对象从state中获取
    Api.deletePostCollections(activityId ,postCollections, params => {  //调删除接口的方法
      dispatch(deletePostCollectionsSetter(params));
    });
  }
}
function deletePostCollectionsSetter(params){
  alertPre("",params);
  return {
    type:DELETE_POST_COLLECTIONS,
    data:{deletePostCollections



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • react.js CMS 删除功能的实现方法
  • 浅谈react.js 之 批量添加与删除功能
  • react.js 翻页插件实例代码

相关文章

  • 2017-05-11bootstrapValidator.min.js表单验证插件
  • 2017-05-11微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
  • 2017-05-11jQuery插件zTree实现删除树节点的方法示例
  • 2017-05-11JQuery异步提交表单与文件上传功能示例
  • 2017-05-11原生js获取浏览器窗口及元素宽高常用方法集合
  • 2017-08-26children和childNodes 的区别
  • 2017-05-11bootstrap table实例详解
  • 2017-05-11微信小程序 弹窗自定义实例代码
  • 2017-05-11js仿微博动态栏功能
  • 2017-05-11jQuery基于ajax操作json数据简单示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
    • node.js发送邮件email的方法详解
    • Angular ui.bootstrap.pagination分页
    • 100多个基础常用JS函数和语法集合大全
    • 漂亮实用的页面loading(加载)封装代码
    • JavaScript实现两个select下拉框选项左移右移
    • angular.js 路由及页面传参示例
    • Vue.js实现文章评论和回复评论功能
    • AngularJS改变元素显示状态
    • 使用Math.max,Math.min获取数组中的最值实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有