React使用DVA本地state传值取值


最近在用Ant Pro 做一个后台系统,在使用中发现Antd Pro使用DVA来实现redux+sagas+router一系列的功能,比传统方式要方便快捷的多,自己研究了其中一些原理,在此贴上代码供别人参考也给自己做个记录,

需要取值的页面

index.js

import { connect } from 'dva';

//这里是一个语法糖,和传统的connect()()作用一样。即把对应models目录下的state取出与本页的变量关联。
@connect(({ chart, loading, global = {} }) => ({ //其中global={}表示global中的所有state
chart, //等同chart:chart,ES6语法。
weather: global.weather, //读取原有的state,即models中的global.js文件中的weather
city: global.city
loading: loading.effects['chart/fetch'], //这个statu使用models中的chart.js文件中的fetch方法异步获取
}))
export default class XXX extends Component {
...
render(){
const { chart, loading, weather, city } = this.props; //在这可用'this.props'读取 }
}

含有state值的页面

chart.js

export default {
namespace: 'chart', state: {
......
}, effects: { //这里相当于是redux
*fetch(_, { call, put }) {
const response = yield call(fakeChartData); //这里的fakeChartData是一个request请求
yield put({
type: 'save',
payload: response,
});
},
......
},
}

global.js

export default {
namespace: 'global',
state: {
collapsed: true,
notices: [],
city: "郑州市",
weather: {},
mapView: "city",
},
.......
}

最新文章

  1. Dynamics AX 2012 R2 安装Reporting Services 扩展
  2. Fix a corrupted user profile
  3. English Morphology
  4. 关于使用工具类org.apache.commons.collections.ListUtils合并List的问题
  5. sql日期函数
  6. Headroom.js
  7. 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
  8. A标签-一个按钮样式
  9. 线上系统/tmp 目录不断增长分析与总结
  10. 从0开始的Python学习015输入与输出
  11. CF1062E Company
  12. springboot项目创建
  13. 【Teradata UDF】MD5加密
  14. GAN笔记——理论与实现
  15. [JSOI 2007]字符加密Cipher
  16. CI框架中自带的加密解密如何应用
  17. ArcGIS 概述
  18. hdu 1013 过山车 匈牙利算法(代码+详细注释)
  19. json转java对象
  20. HDU 6024 Building Shops

热门文章

  1. 阿里云人脸识别测试接口出错 返回Body:{ "errno": 1031, "err_msg": "Invalid Image URL.", "request_id": "cdbe2927-e1bb-4eb1-a603-8fcd4b0b7fc8" }
  2. gerrit原理
  3. MongoDB 入门
  4. MyBatis - 1.入门
  5. JCenter下载太慢, jcenter修改 https为http也许能帮助你
  6. 深入理解JSCore
  7. jquery源码中noConflict(防止$和jQuery的命名冲突)的实现原理
  8. php7安装参数编译
  9. 【BZOJ】3730: 震波
  10. CAS和ABA问题