react项目实战(权限模块开发七)通过ajax技术获取数据
来源:互联网 发布:ubuntu安装声卡驱动 编辑:程序博客网 时间:2024/06/07 15:55
react获取数据一般都是通过fetch加上promise的方式来获取,但由于本人对ajax毕竟感情深厚,怎么也的尝试下。
在构造函数中调用加载数据的ajax请求:
constructor(...props){ //构造函数 绑定事件 super(...props); [ '_loadDate' ].forEach(func=> { this[func] = this[func].bind(this); }); this._loadData(); }
定义_loadData来获取数据
_loadData() { const { dispatch }=this.props; //将ajx请求封装到了QueryCommand 函数中,参数为url 以及请求类型,默认是异步查询 var queryCommand = new QueryCommand('/go-framework/role/read_all', "post"); //组装查询参数 并执行查询操作 queryCommand.executeQuery(queryCommand.getQueryDs(fieldAry), function (list) { //调用成功后 调用redux的action 来改变state的值。 dispatch({ type: 'roleMd/changeData', list: list }); }); }
QueryCommand的代码大概如下:供参考,由于本人的后台数据格式并不是简单的json数据,所以进行了一定的转换。
export class QueryCommand { constructor(url, type, async = false) { this.url = url; this.async = async; this.type = type; } getQueryDs(fileAry) { var obj = new Object(); obj["sessionId"] = 'a24621c7c9d14340bb9adbb3abba9181'; //设置查询ds obj["dataset"] = GoingUtils.getQueryDs(fileAry); return obj; } executeQuery(data, scussfun) { console.log(data); console.log(this.type) $.ajax({ type: this.type, url: this.url, async: this.async, contentType: "application/x-www-form-urlencoded;charset=UTF-8", dataType: "json", data: data, success: function (data, textStatus) { var code = data["code"]; if (code != 1) { } else { var result = data["result"]; var propNames = result["propNames"]; var data = new Array(); result["propValues"].map((itemAry, index)=> { var itemObj = new Object(); propNames.forEach((itemEl, index)=> { if (itemEl === "id") { itemObj["key"] = itemAry[index]; } else { itemObj[itemEl] = itemAry[index]; } }) data.push(itemObj); }) scussfun(data); } } }) }}
reducers里的状态代码:
changeData(state,action){ return { ...state, list:action.list} },
view层代码就更简单了:
const propsObjs = this.props; var dataSource=propsObjs.roleMd.roleMd.list;..... <Table rowSelection={rowSelection} columns={columns} dataSource={dataSource}/>
界面效果如下:
阅读全文
0 0
- react项目实战(权限模块开发七)通过ajax技术获取数据
- react项目实战(权限模块开发一) 配置路由
- react项目实战(权限模块开发六)semantic-ui-react 加入到开发环境中
- react项目实战(权限模块开发二) 项目配置修改
- react项目实战(权限模块开发三) 登陆界面开发
- react项目实战(权限模块开发四) SkinDropDown插件开发
- react项目实战(权限模块开发五) 系统首页开发
- react项目实战(权限模块开发八)js文件分开打包
- react项目实战(权限模块开发九)dva的table控件使用
- React-Native项目实战技术分享
- 通过ajax获取easydropdown数据
- ajax通过网络获取数据
- 练习项目 一款新闻app的开发 (三):通过Rxjava + Retrofit2框架获取网络数据
- React Native iOS原生模块开发实战|教程|心得|如何创建React Native iOS原生模块
- React Native Android原生模块开发实战|教程|心得|如何创建React Native Android原生模块
- OFBiz界面通过Ajax获取json数据
- 通过ajax获取xml数据并显示
- 项目开发(七)
- Apache Kylin在电信运营商的实践和案例分享
- map集合遍历的两种方式,在spring中的依赖注入
- POJ.3087 Shuffle'm Up (模拟)
- STM32网络丢包问题分析
- Linux--多线通信
- react项目实战(权限模块开发七)通过ajax技术获取数据
- 实时股票分析系统的架构与算法
- Python中整数和浮点数
- spring boot引入本地jar
- u-boot移植--1、前期准备及时钟的修改
- 数据结构学习之路4 队列的基本操作(顺序存储的循环队列+链表实现)
- 环境配置,myeclipse+oracle+vmvare12+CentOS7+...
- JS面向对象
- 用Apache Spark进行大数据处理之Spark流(3)